2.继承的概念与实现

提示,类与类之间最常见的关系主要有三种:依赖(uses–a)、聚合(has–a)、继承(is–a)。详情请查看:Java类与类之间的关系

在面向对象世界里面,常常要创建某对象(如:一个职员对象),然后需要一个该基本对象的更专业化的版本,比如,可能需要一个经理的对象。显然经理实际上是一个职员,经理和职员具有 is-a 的关系,经理只是一个带有附加特征的职员。因此,需要有一种办法从现有对象来创建一个新对象,这个方式就是继承。现实中的事务,只要具有 is-a 的关系,在 java 中都可以用继承表示。

“继承”是面向对象软件技术当中的一个概念。如果一个对象 A 继承自另一个对象 B,就把这个 A 称为“B 的子对象”,而把 B 称为“A 的父对象”。 继承可以使得子对象具有父对象的各种属性和方法,而不需要再次编写相同的代码。 在令子对象继承父对象的同时,可以重新定义某些属性,并重写某些方法,即覆盖父对象的原有属性和方法,使其获得与父对象不同的功能。

extends 关键字

在 Java 中,使用  extends  关键字来表达继承的关系,比如:经理这个类继承雇员这个类,示例如下:
public class Employee {
    String name;
    Date hireDate;
    Date dateOfBirth;
    String jobTitle;
    int grade;
    ...
}
public class Manager extends Employee {
    String department;
    Employee[] subordinates;
    ...
}

在这样的定义中,Manager 类被定义,具有 Employee 所拥有的所有变量及方法。所有这些变量和方法都是从父类的定义中继承来的。所有的程序员需要做的是定义额外特征或规定将适用的变化。

注意:这种方法是在维护和可靠性方面的一个伟大进步。如果在 Employee 类中进行修改,那么,Manager 类就会自动修改,而不需要程序员做任何工作,除了对它进行编译。

单继承性

单继承性:当一个类从一个唯一的类继承时,被称做单继承性。单继承性使代码更可靠。接口提供多继承性的好处,而且没有(多继承的)缺点。

Java 编程语言允许一个类仅能继承一个其它类,即一个类只能有一个父类。这个限制被称做单继承性。单继承性与多继承性的优点是面向对象程序员之间广泛讨论的话题。Java 编程语言加强了单继承性限制而使代码更为可靠,尽管这样有时会增加程序员的工作。后面会学到一个被叫做接口(interface)的语言特征,它允许多继承性的大部分好处,而不受其缺点的影响。使用继承性的子类的一个例子如图所示:

构造方法不能被继承

尽管一个子类从父类继承所有的方法和变量,但它不继承构造方法,掌握这一点很重要。 一个类能得到构造方法,只有两个办法。或者写构造方法,或者根本没有写构造方法,类有一个默认的构造方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值