11-继承的定义与使用

继承的定义与使用

面向对象的第二大特征就是继承性,特点在于可以扩充已有类的功能。

继承问题引出

良好的代码:结构性合理、适合于维护、可重用性很高;写代码时不可避免的面对重复问题。
类的改变可以解决结构性的问题,但会发现总会有重复的代码出现在程序中,进一步思考如果想要进行代码的重用,必须使用继承的概念来解决,所谓继承的本质:在已有类的基础上进行功能的扩充;

继承的实现

在Java中实现继承关系,必须依靠extends关键字来完成,语法

class 子类 extends 父类{}

很多情况下把子类成为派生类,把父类称为超类(SuperClass)
继承实现的主要目的在于子类可已重用父类中的结构,并且可以实现功能的扩充,子类可以定义更多的内容,并且描述的范围更小;

子类对象实例化流程

一旦程序中有继承逻辑,我们对与子类对象的实例化定义是有要求的,正常来说没有父类便没有子类,对象实例化的时候一定要有一个父类对象;
即使没有进行父类对象实例化,也会由系统自动调用父类的构造方法(实例化父类),默认情况下的子类对象实例化流程会自动实例化父类对象,实际上相当于子类的构造方法里面隐含了一个“Super()”的形式;
Super()表示的子类构造调用父类构造的语句,只允许放在子类构造方法的首行,但注意在默认情况下,子类只会调用父类中的无参构造方法,若不存在无参构造,则必须使用Super()指定构造方法;
在实例化子类对象的同时,一定会实例化父类对象,目的是为了所有的属性可以进行空间的分配;
Super与this都可以调用构造方法,super由子类调用父类的构造,而this是调用本类构造,并且一定要放在构造方法首行,所以两个语句不允许同时出现;

继承定义限制

1、java中不允许多重继承,只允许多层继承;多重继承的目的是希望可以同时继承多个类中的方法,而面对多继承的要去应将范围限定在同一类中;

//多层继承
class A{}
class B sextends A{}
class C extends B{}

多层继承也需要有限度,层次一般不应该超过三层;

2、在进行继承关系定义的时候,实际上子类可以继承父类中的所有操作结构。但是对于私有操作属于隐式继承,而所有的非私有操作属于显式继承,继承一旦发生了,所有的操作都可以被子类使用了,子类至少会维持父类现有功能;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值