1. 抽象类
1.1.特点
- 抽象类和抽象方法必须用abstract关键字修饰
abstract class 类名 {}
public abstract void print(){}
- 抽象类不能实例化
按照多态的方式,由具体的子类实例化,也为多态的一种,抽象类多态 - 抽象类的子类
抽象类
重写抽象类中的所有抽象方法
2. 抽象类的成员特点
2.1.特点
- 成员变量
既可以是变量,也可以是常量,abstract不能修饰成员变量 - 构造方法
用于子类访问父类数据的初始化 - 成员方法
既可以是抽象的,也可以是非抽象的
2.2.特性
- 抽象方法 强制要求子类做的事情
- 非抽象方法 子类继承的事情,提高代码复用性
3. abstract不能与哪些关键字共存
3.1.static
- 被abstract修饰的方法没有方法体
- 被static修饰的可以用“ 类名. ” 调用,但是这样调用抽象方法是没有意义的
3.2.final
- 被abstract修饰的方法强制子类重写
- 被final修饰的不让子类重写,因此矛盾
3.3.private
- 被abstract修饰是为了让子类看到并强制重写
- 被private修饰不让子类访问,因此矛盾