1、什么情况下使用抽象方法、抽象类?
2、抽象方法的语法格式
【权限修饰符】 abstract 返回值类型 方法名(【形参列表】);
抽象方法没有方法体
抽象方法不能是私有的(private)、静态的(static)、终结的(final)、本地的(native)
抽象方法的修饰符只能是public或protected,本包下也可以缺省。
3、抽象类的语法格式
【权限修饰符】 abstract class 类名 【extends 父类】{
}
抽象类可以有父类,它的父类可以是抽象的也可以是非抽象的。
4、抽象类的特点
(1)不能被实例化
(2)包含抽象方法的类必须是抽象类,但是反过来抽象类可以没有抽象方法。
(3)子类如果继承了抽象类,必须重写抽象父类的所有抽象方法,否则子类也得是抽象类。
(4)抽象类有也必须有构造器,是给子类调用的(因为子类继承父类时,需要为从父类继承的属性进行初始化)。
(5)抽象类的变量可以与子类的对象构成多态引用,通过抽象类的变量调用抽象方法时,执行的是子类“重写”的方法。
5、面试题:抽象类与普通的非抽象类的区别?
最主要的:抽象类不能实例化,可以包含抽象方法。