Java面向对象软件开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.1 类的继承性

客观世界充斥着相互关联并且可划分层次的各种对象,下一层拥有上一层的所有特性,但有着与上一层不同的特点。如车、汽车和轿车。在这里,汽车是车的下一层,而轿车是汽车的下一层。我们叫这种层次关系为继承关系,表现为“是一种”的关系,如汽车“是一种”车,但反过来不能说凡是车都是汽车。在这里汽车继承于车,汽车为车的子类,车为汽车的父类。如图2-5所示正是一个继承的层次图,上一层为父类,下一层为子类。

图2-5 类的继承结构

继承(Inheritance)是一种联结类与类的层次模型。继承性是指子类拥有父类的属性和行为。继承意味着“自动拥有”,即子类中不必重新定义已在父类中定义过的属性和行为,而它却自动、隐含拥有了其父类的属性与行为。

继承是面向对象程序设计的另一个重要特性,类继承也称为类派生,是指一个类可以继承其他类的非私有成员,实现代码复用。被继承的类称为父类或超类,父类包括所有直接或间接被继承的类;继承父类或超类后产生的类称为派生类或子类。子类继承父类的非私有属性和方法,同时也可以修改继承于父类的属性和方法,或拥有自己新的属性和方法。

特别提示:

● Java语言中所有的类,包括自定义的类,均是直接或间接地继承java.lang包下的Object类得到的。

● 在Java语言中只允许类的单继承,即每个类只能有一个父类。而C++中允许多继承。

● 类继承不改变成员的访问权限,父类中的成员为公有的或被保护的,则其子类的成员访问权限也继承为公有的或被保护的。