一个示意图:
类和类之间如果还有共同特征,进一步再抽象,有了抽象类的概念
抽象类属于引用数据类型。
抽象类语法就是在class前面加abstract
抽象类不能实例化,如果抽象类的子类就是普通类,可以实例化,但抽象类的子类也可以是抽象类。
虽然抽象类不能实例化,但是有供子类使用的构造方法,所以如果在抽象类没有写构造方法,在子类写构造方法必有super();
abstract和final不能同时使用。
抽象方法例:
public abstract void doSome();
只能在抽象类中出现,没有方法体。所以如果一个普通类继承抽象类,必须要覆盖它的抽象方法,不然报错。如果Animal是一个抽象类,Bird是它的普通子类,可以:
Aniaml D=new Bird();
//使用多态
这叫面向抽象编程