理论教育 继承特点:Java程序设计中的is-a关系

继承特点:Java程序设计中的is-a关系

时间:2023-10-18 理论教育 版权反馈
【摘要】:Java中的类都是单继承,即一个类只能有一个直接基类,一个父类可以有很多子类,所有类都是java.lang.Object类的直接或间接子类。子类的每个对象也是其父类的对象,这是继承的is-a关系。

继承特点:Java程序设计中的is-a关系

当多个类中存在相同属性和行为时,同时满足is-a的关系时,可以将这些内容抽取到一个单独的父类中,那么这些类无须再定义这些属性和行为,只需要继承父类即可,把这些继承父类的类称之为子类。 初始化子类对象时先初始化从父类继承过来的属性,因此在创建子类对象时会隐式或显式的调用父类构造函数。

继承的特点:

(1)java通过继承实现了代码的复用,被继承的类叫父类(或基类),由父类派生出的类叫子类。

(2)Java中的类都是单继承,即一个类只能有一个直接基类,一个父类可以有很多子类,所有类都是java.lang.Object类的直接或间接子类。

(3)子类继承父类的成员变量和成员方法,同时修改父类的成员变量或重写父类的方法,还可以添加新的成员变量和成员方法。如在JavaTeacher类及DotNetTeacher类中重写Teacher父类中的giveLesson()方法。

(4)子类的每个对象也是其父类的对象,这是继承的is-a关系。如JavaTeacher实例化的对象,既是JavaTeacher类的对象,也是Teacher类的对象。

(5)父类的对象不一定是它的子类的对象。如Teacher对象不一定是JavaTeacher类对象,因为教师不一定是Java教师。(www.daowen.com)

(6)Java程序中实例化子类对象时,会在执行子类的构造方法之前,先调用父类的构造方法,其目的是对继承自父类的成员进行初始化操作,可以使用super([参数列表])中的参数个数及类型确定调用父类中的哪个构造方法,若在子类构造方法中没有出现super([参数列表])调用形式,则一定调用父类的无参构造方法,此时若父类中没有无参构造方法,则编译时会报错。

(7)构造方法不能被子类继承,但可以使用super([参数列表])被子类调用。

(8)调用父类构造方法的super([参数列表])语句行必须写在子类构造方法的第一行,否则编译时将报错。

(9)super()与this()在使用时,要求必须出现在构造方法内的第一行,因此super()和this()不能同时存在于同一个构造方法内。

(10)super关键字表示父类对象,同this关键字一样不能在static环境中使用,如静态方法和静态代码块。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈