抽象类

一个抽象类的例子

写一个动物的抽象类,有吃和喝的抽象方法,再写三个类继承动物类
分别是人类,狗类,猫类,
狗加一个看门的方法,
猫加一个捋毛的方法,
人增加一个玩电脑游戏的方法

package com.forcoldplay.javase;

abstract class Animal01 {
    abstract void eat();
    abstract void drink();
}
class Person01 extends Animal01 {
    
    public void eat() {
        System.out.println("person eat.....");
    }
    public void drink() {
        System.out.println("person drink...");
    }
    public void playComputer() {
        System.out.println("person playComputer");
    }
}
class Cat extends Animal01 {
    public void eat() {
        System.out.println("cat eat.....");
    }
    public void drink() {
        System.out.println("cat drink...");
    }    
    public void cleanUpFur() {
        System.out.println("cat clean up fur...");        
    }
}
class Dog extends Animal01{
    public void eat() {
        System.out.println("dog eat.....");
    }
    public void drink() {
        System.out.println("dog drink...");
    }    
    public void guardTheDoor() {
        System.out.println("dog guard the door...");        
    }
}
public class Demo20{
    public static void main(String[] args) {
        Person01 p = new Person01();
        Dog d = new Dog();
        Cat c = new Cat();
        
        p.eat();
        p.drink();
        p.playComputer();
        
        d.eat();
        d.drink();
        d.guardTheDoor();
        
        c.eat();
        c.drink();
        c.cleanUpFur();
        
    }
}

抽象类的规则

抽象类不可以被实例化

抽象类可以有构造方法

抽象类可以有普通方法,抽象类可以全部是普通方法

抽象方法不能被Private修饰,因为抽象类就是为了子类继承并实现其抽象方法的

抽象方法不能被static关键字修饰,因为静态方法无法被重写

抽象方法不能被final关键字修饰,因为final修饰过的类不能重写

抽象方法不能被synchronized关键字修饰,因为抽象方法不涉及实现细节

抽象方法不能同时是本地方法

抽象方法可以用public protected default 等修饰

一个子类只能继承一个抽象类

Last modification:November 20th, 2019 at 11:23 pm
如果觉得我的文章对你有用,请随意赞赏