需求:描述一个动物、狗、鸟三个类。 动物、狗、鸟run
问题:
1. 动物类的run方法描述得有问题。
2. 没有强制子类一定要重写run方法。
抽象类的应用场景:
描述一类事物的时候,发现该事物确实存在着某种行为,但是目前该行为是不具体的,那么这时候我们应该抽取该方法的声明,不去实现该方法,这时候我们应该使用抽象类。
抽象类要注意的细节:
1. 如果一个方法没有方法体,那么该方法必须使用abstract修饰。
2. 如果一个类有抽象的方法,那么该类也必须使用abstract修饰。
3. 非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法全部实现。
4. 抽象类可以定义抽象方法以及非抽象方法。
5. 抽象类是可以不存在抽象方法的。
6. 抽象类不能创建对象。
疑问: 为什么抽象类不能创建对象呢?
因为抽象类一旦创建了对象就可以使用对象去调用方法了,一旦调用了抽象方法就没有任何的意义了。
7. 抽象类是存在构造方法的。