抽象类的理解
被abstract class 定义的类称作抽象类。抽象类就是对类的抽象(包括方法和属性),接口只是对方法的抽象。强调"归属于",比如金鱼类和鲤鱼类可以抽象为鱼类,这时候鱼类就可以作为金鱼和鲤鱼两个实体类的抽象类。抽象类本质上还是一个类。
抽象类的构造方法
抽象类有构造方法,但是不能直接实例化对象,因为抽象类的构造方法无法给抽象方法和属性分配内存。抽象类的构造方法在其子类创建对象的时候调用。要想创建抽象类对象,可以通过抽象类的匿名内部类来创建。
抽象类的抽象方法
抽象类可以没有抽象方法,但是有抽象方法的类一定是抽象类。构造方法和类方法不能声明为抽象方法。 使用absract B(); 定义抽象方法,抽象方法没有方法体。
抽象类的子类
类是单继承的,继承了抽象类的子类不能再继承其他类。如果抽象类有抽象方法,子类必须重写父类抽象方法,否则要声明为抽象类。
总结
1、被abstract class声明的类一定是抽象类。
2、有抽象方法的类,一定要用abstract class声明,所以也一定是抽象类。
3、子类必须重写父类抽象方法,否则要声明为抽象类。