9.1.2 继承的概念

继承,就是在已经存在的类的基础上,再进行扩展,从而产生新的类。已经存在的类称为父类、超类或基类,而新产生的类称为子类或派生类。

既然有了继承的双方,那么要继承什么呢?在现实生活中,要继承父辈,可以继承属于父辈的所有东西。在Java中,父类所拥有的一切,子类都可以继承(初学者可以这么理解,但这句话并不算精确)。父类拥有自己的属性字段和方法函数,这些子类都可以继承。子类继承了父类所有的属性和方法,就可以使用它们。另外,子类除了拥有父类的属性和方法,也可以创建自己的特性。根据这些特性,总结出继承的关系图,如图9.2所示。

9.1.2 继承的概念 - 图1

图 9.2 继承图

当遇到一种类包含另一种类的属性、方法时,就可以使用继承父类的方式来创建子类,无须重新创建一个重复的类。这样不但可以减少代码,而且易于维护,还可以更加直观地体现出面向对象程序设计的思路。这就是Java程序设计,准确地说就是面向对象程序设计的一个特色。

为了能够更好地说明继承的概念,下面举一个实际生活中有关汽车类的例子:

要开发一个有关汽车的Java程序,首先会建立一个汽车的父类,此类拥有一些属性字段和方法函数。当要设计一个具体的厂家的汽车时,可以建立这个厂家自己的汽车类,让这个类作为汽车父类的子类,即让它能拥有汽车父类的所有属性和方法。那么在子类的代码中,就无须书写父类中已经存在的属性和方法。在子类中,还可以将这个厂家汽车自身的特点,以新属性和方法的方式列进子类中。整个汽车类的继承关系如图9.3所示。

注意 父类无法使用子类独有的属性和方法。

9.1.2 继承的概念 - 图2

图 9.3 汽车类继承图

下面就是这个汽车类实例的一段抽象代码。

汽车类

{

汽车有四个轮子属性

引擎属性

方向盘属性

如何驾驶它()—————-方法函数

如何保养它()—————-方法函数

}

宝马厂家的敞篷跑车继承汽车类

{

如何打开敞篷—————-方法函数

}


这段代码中,父类拥有的属性,子类通过继承也拥有了。而子类有一个自己的方法“如何打开敞篷”,它只属于子类,父类无法使用。父类对象可以使用“宝马厂家的敞篷跑车.引擎”,或者“宝马厂家的敞篷跑车.如何保养它()”,但是绝对不能使用“汽车类.如何打开敞篷()”这个方法。