第4章new+继承与多态

第4章new+继承与多态

ID:45725485

大小:239.50 KB

页数:21页

时间:2019-11-17

第4章new+继承与多态_第1页
第4章new+继承与多态_第2页
第4章new+继承与多态_第3页
第4章new+继承与多态_第4页
第4章new+继承与多态_第5页
资源描述:

《第4章new+继承与多态》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第4章继承与多态利用继承,可以基于已经存在的类构造新类,还可以在新类中添加一些新的成员或修改继承了的成员,以满足新的需求。而多态是在继承的基础上引出的,可以解决子类父类中的成员重名问题。4.1继承概述利用继承可以很好地实现代码重用问题。在利用已有的类构造新类时,新类保留已有类的属性和行为,并可以根据要求添加新的属性和行为。例如,卡车具有一般汽车的属性,而特有的属性就是载货。4.1.1超类、子类被继承的类一般称为“超类”或“父类”,继承的类称为“子类”。继承节省了定义新类的大量工作,可以方便地重用代码。一个子类可以选择覆盖已有的属性和方法,或添加新的属性和方法

2、。4.1.2继承层次继承只是代码重用的一种方式,只有当需要向新类添加新的操作,并且把已存在类的默认行为融合进新类中时,才需要继承已存在的类。4.2Java中的继承在Java中,实际上所有的类均直接或间接继承自java.lang.Object类也可以说Object类是Java中的总根类。实际开发中,如不特殊指定,开发人员自己定义的类均直接继承自Object类。4.2.1派生子类在Java中,类的继承通过entends关键字实现。在创建新类时,使用extends指明新类的父类,具体语法如下。class子类名extends父类名{子类类体}4.2.2继承规则1.成

3、员变量的继承规则取决于其对应的访问限制:public,private,protected,default见例1、22.成员变量的隐藏对于成员变量来说,当子类本身具有与继承自父类的成员变量名称相同的成员变量时,便构成了成员变量的隐藏。其含义是,在子类中直接调用该成员变量时,将调用的是子类中本身具有的成员变量,而不是从父类继承的成员变量见例34.2.3方法的继承与覆盖方法继承允许子类使用父类的方法,而覆盖是在子类中重新定义父类中的方法。1.方法的继承方法也是一种成员,其是否能被继承同样取决与访问限制。见例42.方法的覆盖子类的自身方法中,若与继承过来的方法具有相

4、同的方法名,便构成了方法的重写(有的资料称之为方法的覆盖)。见例54.2.4this与super在Java中,this和super与继承是密切相关的。this常用来引用当前对象,而super常用来引用父类对象。1.this方法中的某个对象与当前对象的某个成员有相同的名字,这时为了不至于混淆,可以使用this关键字来指明要使用某个成员,使用方法是“this.成员名”,即使用this隐式地引用对象的实例变量和方法。见例6、7、82.supersuper用来引用父类的成员,包含父类的构造函数、属性以及方法。使用方法为super变量名或super.方法名(实参)。见

5、例94.3强制类型转换将一个类型强制转换为另一个数据类型的过程称为强制类型转换。本节中的强制类型转换只在继承过程中发生引用类型转换,而不是基本数据类型的转换。引用类型转换指对象引用的强制类型转换.不管什么类型的对象引用,均能指向其自身类型的对象实例。1//汽车类型的引用c指向汽车类型的对象2Carc=newCar();3Vehiclev=newCar();见例10、114.4动态绑定所谓的动态绑定,通俗的就是指,对象在调用方法的时候能够自己判断该调用谁的方法。所以动态绑定一般发生在继承、方法重载时。那么发生方法重载时,编译器如何确定调用的方法呢?例如,调用c

6、.f(arg)时,首先需要将c声明为B类的对象。如果在B类中,存在多个f方法,只是f的参数类型不同,调用f(int)或者f(String)时,编译器逐一列举B类中所有名为f的方法以及B类超类中访问权限为public的名为f的方法。如果存在与c.f(arg)中arg类型相匹配的方法,那么就调用这个方法。由此,调用哪个方法依赖于隐式参数的实际类型。这个过程可以就是一个动态绑定的过程。见例124.5终止继承:Final类和Final方法关键字Final不但可以用来修饰变量,而且对类及其方法的继承也有很大的影响。见例134.5.1Final类当关键字final用来修

7、饰类时,其含义是该类不能再派生子类。那么什么时候应该使用final修饰类呢?只有当需要确保类中的所有方法都不被重写时才应该建立最终(final)类。4.5.2Final方法当用final关键字修饰方法后,该方法在子类中将无法重写,只能继承。要恰当使用final的方法,只有在子类覆盖某个方法会带来问题时,再将此方法设为final的方法。见例144.6抽象类在现实世界中,当人们认识世界时,也会把现实世界很多具有相同特征的事物归为一个抽象类。例如,水果是很多种具体植物果实的总称(抽象类),当需要拿出一个水果的实例时,拿出来的不是苹果就是香蕉等具体种类的实例,拿不出

8、只是水果的实例。在需要一个抽象类实例时,只能用某个具

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。