12.2 抽象类

什么是抽象类呢?抽象类就是使用关键字“abstract”来修饰的类。本节将通过理论与实际程序相结合的方式,来讲述抽象类的使用和特点。

12.2.1 什么是抽象类

前面介绍过抽象,抽象就是从具体到通性的方法。而抽象类就是指具有共同特性的类,其通过关键字“abstract”表示。这些类不能完全说明一个对象的属性,既然是这样,那为什么需要抽象类?

具有一个抽象或多个抽象方法的类,本身就要被定义为抽象类。所谓的抽象方法,就是带关键字“abstract”的方法。抽象类不只有抽象方法,也可以有具体的方法,一个类中只要有一个抽象方法,那么这个类就是抽象类。

抽象类是可以继承的,如果子类没有实现抽象类的全部抽象方法,那么子类也是抽象类。如果实现了抽象类的全部抽象方法,那么子类就不是抽象类。含有抽象方法的类一定是抽象类,但抽象类不一定含有抽象方法,也可以全部都是具体的方法。

抽象类不能被实例化,即不能使用关键字“new”来生成实例对象,但可以声明一个抽象类的变量指向具体子类的对象。

回到刚才的问题,为什么要有抽象类?抽象类的好处在于,当有的方法在父类中不想实现时,可以不用实现。下一节将通过一个综合实例来学习抽象类的使用。