5.1.2 继承关系

更新于 2026年10月10日 版权声明
5.1.2 继承关系

继承关系指一个类(称为子类)继承另外的一个类(称为父类)的属性和功能,同时子类结合自身特点增加其特有的新的属性或功能,继承关系是is-a的关系。在Java中继承关系通过关键字extends明确标识。

【例5.2】定义JavaTeacher类,JavaTeacher类包含姓名和所属教学部门属性,包含授课和自我介绍的方法。定义DotNetTeacher类,DotNetTeacher类包含姓名和所属教学部门属性,包含授课和自我介绍的方法。再定义主类Example5_2类,在Example5_2类中测试JavaTeacher类和DotNetTeacher类创建的对象实现两类教师授课的功能。运行结果如图5.1所示。

图示

图5.1 Example5_2类运行结果

Example5_2.java

图示

图示(https://www.daowen.com)

通过观察在上述例子发现的JavaTeacher类和DotNetTeacher类中存在大量重复代码,如果在上述程序再增加一类数据库老师,则创建的数据库老师的DBTeacher类与JavaTeacher及DotNetTeacher类中仍然存在大量重复代码的问题。

继承可以解决类与类间的代码重复的问题,但是在写类与类间的继承关系时,要求类与类之间存在“is-a”的关系,如Java老师是老师的一类,.net老师是老师的一类,因此上例可以把JavaTeacher和DotNetTeacher中的重复代码抽象出一个Teacher类,JavaTeacher和DotNetTeacher再从Teacher类继承,以解决代码的复用问题。

【例5.3】通过继承关系使JavaTeacher及DotNetTeacher从Teacher类继承,再实现例5.2中的教师授课功能。

Example5_3.java

图示

图示

当类与类之间存在is-a的关系时,可以用继承进行描述,通过子类继承父类可以减少类与类之间的重复代码。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)