第章类的封装、继承和多态(信息学院2级)演示课件.pptVIP

第章类的封装、继承和多态(信息学院2级)演示课件.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文档。上传文档
查看更多
子类的构造方法没有调用super()或this(),将默认执行super() public Person() { super(); //调用父类构造方法Object() } public Student() { super(); //默认调用 speciality=; } 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * Student类中会默认调用Person父类构造函数。 如果父类中没有默认构造函数,就会出现错误。 调用父类构造方法的语法为: super() 或 super(参数列表) ; super () 方法始终指向调用类的父类 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父类自己提供了无参构造函数,则会调用父类自己的无参构造函数。 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父类只定义了自己的有参构造函数,会出错。 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * 构造函数使用注意 一个类只有一个父类,一个父类可以有多个子类 在子类中,凡是继承来的属性,必须要调用父类的构造方法来初始化 先调用父类构造方法初始化父类属性,再初始化子类扩展属性。 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * 图3.7 子类构造方法逐个执行成员对象和父类的构造方法 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * public Student(String name,MyDate birthday,String Specicality){ super(name,birtyday); this.speciality = speciality; } super使用 调用父类的构造方法 super([参数列表]) 引用父类同名成员 子类隐藏父类成员变量 super.成员变量 子类覆盖父类成员方法 super.成员方法([参数列表]) 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * 在子类里面调用被隐藏或者覆盖的父类成员的方式 * 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 3.4 类的多态性 3.4.1 子类重定义父类成员 3.4.2 类型的多态 3.4.3 编译时多态和运行时多态性 3.4.4 多态的方法实现 多态性 概念 什么是多态:顾名思义就是拥有“多种形态”的含义,是指属性或方法表现为多种形态。 java中的多态的表现形式一般分为两种:override (重写)和overload(重载) 重写,重写override是父类和子类之间多态性的一种表现,重载overload是一个类中多态性的表现。 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * (父类和子类Override)多态性 举例 父类 子类 - 绘制和移动三角形 子类 - 绘制和移动矩形 子类 - 绘制和移动五边形 Shape Draw () Move () Triangle Draw () { DrawTraingle } Move () { MoveTriangleVertices } Rectangle Draw () { DrawRectangle } Move () { MoveRectangleCorner } Pentagon Draw () { DrawPentagon } Move () { MovePentagonVertices } 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * 3.4.1 子类重定义父类成员——多态性实现方法 重定义父类成员变量,则隐藏父类成员变量 子类覆盖父类成员方法 覆盖(override)是指子类声明并实现父类中的同名方法并且参数列表也完全相同。 子类继承并重载父类成员方法 重载(overload)是指同一个类中的多个方法可以同名但参数列表必须不同。 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 * 【例3.5】 Student类重定义从父类继承来的成员。 方法名和参数完全相同,则被覆盖;方法名同而参数不同,则重载 例3.5分析 Student和Person类中都声明私有的静态成员变量count,Person的count在子类中被隐藏,需要使用super.count访问; howMany方法在子类Student中采用扩展的方式重写 Set方法被子类Student继承并重载 * * 武汉理工大学信息学院《Java程序设计实用教程(第4版)》 3.4.2 类型的多态 1.

文档评论(0)

youngyu0329 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档