抽象类、abstract关键字

引入

如前面的动物类、猫类、狗类。说动物,但是不知道说的是什么动物。只有看到了具体的动物,才知道这是什么动物。所以说,动物本身不是一个具体的事物,而是一个抽象的事物。只有真正的猫、狗是具体的动物。
不同的动物的吃的东西是不一样的,所以,我们不应该在动物类给出具体的方法体现,而是给一个方法声明即可。
在Java中,一个没有方法体的方法应该定义为抽象方法(连{}都没有的,这叫空方法体。),而类中如果有抽象的功能(抽象方法),该类必须定义为抽象类

抽象类的特点

1、抽象类和抽象方法必须用abstract关键字修饰。
2、抽象类中可以没有抽象方法,但出现抽象方法就必须把所在类定义为抽象类。
3、抽象类不能实例化。因为它不是具体的。但是抽象类有构造方法,用于子类访问父类数据的初始化。
4、抽象类的子类:1)若重写了抽象类的抽象方法,该子类是一个具体类;2)若没重写,则该子类是一个抽象类。
5、抽象类的成员方法特性:1)抽象方法:是强制要求子类做的事(一般,子类去重写,完成更适合自己的功能);2)非抽象方法:是子类继承的事情,提高代码的复用性。

抽象类的实例化其实是靠具体的子类实现的。是多态的方式。

Animal a= new Animal();//报错。不能new Animal()
但可以Animal a= new Cat();

猜你喜欢

转载自blog.csdn.net/u013317445/article/details/81702363
今日推荐