Java语言程序设计教程第2版 教学课件 作者 邱桃荣 主编 第5章 继承和多态.pptVIP

Java语言程序设计教程第2版 教学课件 作者 邱桃荣 主编 第5章 继承和多态.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 继承与多态 学习导读 本章讨论面向对象的编程(OOP)及其关键技术:继承和多态。 继承性是软件复用的一种形式,对降低软件复杂性行之有效。继承性同时是面向对象程序设计语言的特点,采用对象但没有继承性的语言是基于对象的语言,但不是面向对象的语言,这是两者的区别。 多态性允许以统一的风格处理已存在的变量及相关的类,使增加系统中新功能变得容易。 课程结构 5.1 继承 5.2 抽象类 5.3 接口 5.4 多态性 5.1 继承 5.1 继承 1.继承定义 继承性是软件复用的一种形式。新类由已存在的类生成,通过保留它们的属性和行为,并且根据新类的要求对性能加以修改,添加新的属性和行为。 5.1 继承 如果子类只从一个父类继承,则称为单继承;如果子类从一个以上父类继承,则称为多继承。注意 Java不支持多重继承,但它支持“接口”概念。接口使Java获得了多重继承的许多优点,摒弃了相应的缺点。 5.1 继承 2.继承的实现 Java语言中是通过关键字extends来实现单继承的。简单的实现格式如下: class 子类名 extends 父类名{ 类体 } 注意: 如果在格式中没有通过extends关键字来标明父类名,这并不是意味着该类无父类,相反,它表示该类是java.lang.Object的子类。 5.1 继承 例5.1 类继承的示例。 定义一个BaseClass类和DerivedClass类,其中BaseClass是DerivedClass的父类.程序清单见BaseClass.java和DerivedClass.java.运行结果如  图5-1. 5.2 抽象类 在现实生活中,可以发现这样的现象:许多实物抽象出成为一个共同的类别,如“交通工具”,但是“交通工具”并直接对应着实际存在的类别如卡车、自行车、三轮车等。 “交通工具”等只是作为一个抽象概念存在,对一组固定实现的抽象描述,并不对应具体的概念。因此,在面向对象程序设计中,可以将这些抽象描述定义为抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。 由于抽象类对一组具体实现的抽象性描述,所以抽象体是不能修改的。通常抽象类不具备实际功能,只用来派生子类。 5.2 抽象类 1.抽象方法 Java语言中,用关键字abstract修饰的方法为抽象方法。语法格式形如: abstract 返回值类型 方法名([形式参数]); 抽象方法只有方法头没有方法体,即只提供方法的规格说明,没有具体的实现。 注意: 1)final关键字不能修饰抽象方法。这是因为final是不可修改的方法是最终的方法,而抽象方法没有方法体,能被派生类进行覆盖; 2)static是不能修饰抽象方法的。静态方法占据固定内存空间,而抽象方法根本就不可能运行,不会加载到内存中。所以,static关键字不能修饰抽象方法。 5.2 抽象类 2.抽象类 抽象类是用关键字abstract修饰的类为抽象类。语法格式形如: abstract class 抽象类名 { 类体 } 5.2 抽象类 注意: 抽象类只是具体实体的抽象描述,是不可以实例化对象。 尽管抽象类定义构造方法是没有语法错误,但是没有实际意义。抽象类中可以定义非抽象方法,也可以定义抽象方法。 抽象方法在它的派生子类中可以覆盖,来实现具体功能。 抽象类派生出的子类,必须对抽象类中的抽象方法重写。 5.2 抽象类 例:一个抽象类的例子.定义一个抽象类AbstractClassExample以及该类的子类DerivedAbstractClass,程序清单分别见AbstractClassExample.java和DerivedAbstractClass.java. 程序的运行结果见图5-2. 5.3 接口 Java语言不支持多继承,但是在有的情况下需要使用多继承。 Java语言可以通过接口概念,一方面实现多继承,同时避免“二义性问题”的产生,另一方面为Java语言在支持单继承机制的前提下实现多态提供了方便。 从编程的角度看,Java语言定义的接口实际上是一组抽象方法和常量的集合,为其他类提供运算的外部说明。接口为一个或多个类提供一个行为规范,具体的实现在这些类中完成,这些类之间并不存在层次关系。通过接口可以了解对象的实例方法的原型,而不需要了解这些方法的具体实现。接口的存在有效解决了如何实现多继承,同时避免了由于多继承产生的“二义性问题”。 5.3 接口 1.接口的格式定义 Java语言中,接口是通过关键字interface来实现定义的,具体格式如下: [public] interface 接口名 [extends 父接口名表]{ 接口体 } 接口名的定义规则同类名的规则。接口可以有继承关系,通过关键字extends实现继承。接口体中定义

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档