Java05继承与多态

Java05继承与多态

ID:45584311

大小:602.00 KB

页数:30页

时间:2019-11-15

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

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

1、第5章继承与多态陆雪松生物医学工程学院主要内容Java的继承机制Java的多态性抽象类和最终类接口类型的定义和实现8/25/20212第5章继承与多态Java的继承机制继承是现实世界中实体间的一种关系,映射到面向对象程序中就是两个类之间的一种关系。理解继承是理解面向对象程序设计所有方面的关键所在,它允许在构成软件系统的类层次结构中重用已存在类的程序代码并扩充它们以建立一个新类来实现新的功能,从而大大提高软件的可重用性和可维护性。8/25/20213第5章继承与多态设计一个类的原则:应实现定义明确的单任务,而不是用多个任务去加重该类的负担,最好不用一个类来描述现实世界

2、中既有共性又有差异的两类实体,而是用一个类扩展另一个类的“继承关系”来描述。Java的继承机制例如:平面几何图形中的“圆”,是一种由点集合所构成的平面几何图形。该点集合以一个点(坐标)作为中心,另外点与该中心具有相等距离(半径)。对此,面向对象解析的结果应该设计两个类,即Point类和Circle类,且两个类具有继承关系,即Circle类由Point类继承而来,或者说Circle类扩展(extends)了Point类。8/25/20214第5章继承与多态子类还可以继续往下继承,即Circle类扩展为Cylinder(圆柱体)类。那么,就称Cylinder类是Circ

3、le类的直接子类,简称子类;反之,称Circle类是Cylinder类的直接超类,简称父类。而称Point类是Cylinder类的间接超类,称Cylinder是Point类的间接子类。Java的继承机制8/25/20215第5章继承与多态Java的继承机制由C++发展而来,与之有相似之处,但也有不同特点:(1)Java与C++不同,只有公有继承方式而没有私有继承方式。因为访问控制修饰符可以实现继承树中的严密封装,加上Java还增加有程序包的隐藏机制,所以,它具有公有继承方式下的所有特性。对任何已有的类,无论是Java系统提供的,还是用户自行定义的类,都可以扩展出新的

4、子类。由于子类将继承超类的所有成员变量和方法,不管它们是什么类修饰符,超类的所有成员变量和方法都自动成为子类的变量和方法。Java的继承机制8/25/20216第5章继承与多态不管是父类还是子类的对象都可以直接访问自身的公有变量和方法,但不能直接访问自身的私有变量和方法、保护变量和方法。那些隐藏的私有和保护变量、方法只有通过其对象调用公有方法才能访问。不管是直接子类的对象还是间接子类的对象都可以访问公有超类或者同一个程序包内友元超类中的公有变量和方法,而不能访问它们私有的和保护的变量和方法。在子类的任何方法体内,都可以直接地访问超类的保护变量和方法,不管是直接超类还

5、是间接超类。但不能访问超类的私有变量和方法,它只有通过超类自身的公有方法才能访问。Java的继承机制8/25/20217第5章继承与多态(2)Java只支持单继承,而不支持多继承。对于现实世界中大量存在的多继承关系是采用接口类型来实现的。(3)Java除了提供一个this引用外,还提供一个super引用变量,它用来替代直接超类及父类,但不能替代间接超类。(4)超类的对象引用可以用来指向它的任何子类的对象,但反之子类的对象引用不能指向它的超类对象。(5)子类无条件地继承父类的所有方法,但不继承父类的构造方法。Java的继承机制8/25/20218第5章继承与多态【例6

6、-4】类之间的继承若干示例Java的继承机制8/25/20219第5章继承与多态Java的多态性多态(polymorphism)是面向对象的一大特征,它反映了现实世界中事物行为的动态变化。不是指整个类都具有多态性,而是指类的方法具有多态性。使用多态与重载的优点是便于管理名字空间实现运行时的动态联编提高了抽象程度降低维护工作量增加程序设计的灵活性。8/25/202110第5章继承与多态Java的多态性Java语言中多态一般有四种表现形式第一种是强制类型转换第二种是方法重载第三种是类或方法定义中的类型参数第四种是继承与实现中的抽象操作8/25/202111第5章继承与多

7、态在包含超类和子类的继承树中,有两种方式对多个方法体使用相同方法名:使用不同参数表,其内至少有一个参数的类型不同,这称为方法重载;子类将超类中的一个方法名重复使用并编写一个新的方法体,且采用完全相同的参数表和返回类型,这称为方法覆盖。Java的多态性8/25/202112第5章继承与多态将一个方法或函数调用与一个方法体或函数体链接起来的操作称为“联编”。在程序运行之前编译时就执行的联编称为静态联编;在程序运行期间根据对象的类型才能决定链接哪一个方法体或函数体的联编称为动态联编。Java全部采用动态联编技术,编程时不用考虑是否应进行动态联编。Java的多态性8/2

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

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

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