- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java语言与面向对象程序设计第11讲(继承与多态)
Java语言与面向对象程序设计第11讲 Java语言与面向对象程序设计第11讲 【上节回顾】 继承的基本概念; 类的继承(重点) 派生子类 属性的继承和隐藏(同名变量) 方法的继承和覆盖(overload) this和super 第5章 继承与多态 5.1 继承的基本概念 5.2 类的继承 5.3 多态 5.4 方法的重载 5.5 构造方法的重载 5.6 包及其使用 5.7 接口 5.3 多态 5.3.1 多态的概念 5.3.2 方法覆盖实现的多态 5.3.3 方法重载实现的多态 5.3.4 对象引用的多态 5.3 多态 5.3.1 多态的概念 5.3 多态 5.3.2 方法覆盖实现的多态 5.3 多态 5.3.3 方法重载实现的多态 5.3 多态 5.3.4 对象引用的多态 (1)子类对象可以作为父类的对象来使用。 例如: Class Employee {…}//职工 Class Manager extends Employee{…}//管理者 Class Director extends Manager{…}//领导 Employee emp = new Employee(); Employee emp = new Manager(); Employee emp = new Director(); 5.3 多态 5.3.4 对象引用的多态 (2)父类对象不能作为其某一个子类的对象。 例如: Manager mgr = new Employee(); //错误,不兼容的类型 5.3 多态 5.3.4 对象引用的多态 (3)如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数。 【课堂示例(一)】 P115:例5-7 多态测试。 【课堂示例(二)】 P116:例5-8 多态测试。 5.3 多态 5.3.4 对象引用的多态 通过父类变量可以让一个子类的对象做父类对象可以做的事情,也就是说,通过父类变量不能让子类对象做父类对象不能做的事情,即使子类对象有这样的功能。 例如,给Manager类增加一个父类中没有的方法getTotal,用于获得管理者工资、津贴之和。 Employee emp2 = new Manager(李宏,54,3000f,500f); System.out.println(emp2. name); System.out.println(emp2. allowance); System.out.println(emp2.getTotal()); 5.3 多态 5.3.4 对象引用的多态 (4)如果父类对象引用指向的实际是一个子类对象(在以前的某个时候根据(1)把子类对象的引用赋值给这个父类对象的引用),那么这个父类对象的引用可以用强制类型转换转化成子类对象的引用。 对象类型转换的方法: Employee emp = new Manager(…); Manager mgr = (Manager)emp; //下述类型转换是错误的 Employee emp = new Employee(…); Manager mgr = (Manager)emp; 5.3 多态 5.3.4 对象引用的多态 由于对象引用具有多态性,即可以是父类的引用,也可以是子类的引用,那么在程序中能否判断出它究竟是哪类对象的引用呢??通过运算符instanceof实现。 例如: Employee emp = new Employee(…); Emp instanceof Employee //表达式为真 Emp instanceof Manager //表达式为假 Employee emp = new Manager(…); Emp instanceof Employee //表达式为假 Emp instanceof Manager //表达式为真 【课堂示例(三)】 P119:例5-9 多态测试。 5.4 方法的重载 方法的重载是实现多态技术的重要手段。与方法的覆盖不同,重载不是子类对父类同名方法的重新定义,而是类对自身已有的同名方法的重新定义。 【课堂示例(四)】 P121:例5-10 方法重载的测试。 【小结】 多态; 概念; 多态形式一:覆盖(override) 多态形式二:重载(overload) 对象引用的多态(重点) 方法的重载。 (重点) * * 本节内容 多态是面向对象程序设计的又一个特殊特性。利用面向过程的语言编程,主要工作是编写一个个过程或函数。这些过程和函数各自对应一定的功能,它们之间是不能重名的,否则在用名字调用时,就会产生歧异和错误。而在面向对象的程序设计中,有时却需要利用这样的“重名”现象来提高程序的抽象
原创力文档


文档评论(0)