面向对象-JAVA继承

类与类之间同样具有关系,这种关系被称为关联。关联主要描述两 个类之间的一般二元关系,例如,一个百货公司类与销售员类就是一个 关联,学生类与教师类也是一个关联。两个类之间的关系有很多种,继 承是关联中的一种。

当处理一个问题时,可以将一些有用的类保留下来,在遇到同样问 题时拿来复用。假如这时需要解决信鸽送信的问题,我们很自然就会想到图所示的鸟类。由于鸽子属于鸟类,具有与鸟类相同的属性和行 为,便可以在创建信鸽类时将鸟类拿来复用,并且保留鸟类具有的属性 和行为。不过,并不是所有的鸟都有送信的习惯,因此还需要再添加一 些信鸽具有的独特属性及行为。鸽子类保留了鸟类的属性和行为,这样 就节省了定义鸟和鸽子共同具有的属性和行为的时间,这就是继承的基 本思想。设计软件时,使用继承思想可以缩短软件开发的周期,复用那 些已经定义好的类可以提高系统性能,减少系统在使用过程中出现错误 的概率。

类结构

继承性主要利用特定对象之间的共有属性。例如,平行四边形是四 边形,正方形、矩形也都是四边形,平行四边形与四边形具有共同特 性,就是拥有4个边,可以将平行四边形类看作四边形的延伸,平行四 边形复用了四边形的属性和行为,同时添加了平行四边形独有的属性和 行为,如平行四边形的对边平行且相等。这里可以将平行四边形类看作 是从四边形类中继承的。在Java语言中将类似于平行四边形的类称为子类,将类似于四边形的类称为父类或超类。值得注意的是,可以说平行 四边形是特殊的四边形,但不能说四边形是平行四边形,也就是说子类 的实例都是父类的实例,但不能说父类的实例是子类的实例。图阐明了图形类之间的继承关系。

图形类层次结构示意图

从图中可以看出,继承关系可以使用树形关系来表示,父类与 子类存在一种层次关系。一个类处于继承体系中,它既可以是其他类的 父类,为其他类提供属性和行为,也可以是其他类的子类,继承父类的 属性和方法,如三角形既是图形类的子类也是等边三角形的父类。

发表评论