- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
调用父类的构造函数-read
第4章 Java面对对象的程序设计(二) 学习导读 本章讨论面向对象的编程(OOP)及其关键技术:继承和多态、接口、包。 继承性是软件复用的一种形式,对降低软件复杂性行之有效。继承性同时是面向对象程序设计语言的特点,采用对象但没有继承性的语言是基于对象的语言,但不是面向对象的语言,这是两者的区别。 多态性允许以统一的风格处理已存在的变量及相关的类,使增加系统中新功能变得容易。 5.1 继承的概念 5.1 继承的概念 继承定义 继承性是软件复用的一种形式。新类由已存在的类生成,通过保留它们的属性和行为,并且根据新类的要求对性能加以修改,添加新的属性和行为。 如果子类只从一个父类继承,则称为单继承;如果子类从一个以上父类继承,则称为多继承。注意 Java不支持多重继承,但它支持“接口”概念。接口使Java获得了多重继承的许多优点,摒弃了相应的缺点。 多继承的菱形缺陷 A派生子类B、C,D多继承于B、C。 这种情况下,会导致类D的对象中有 两个类A子对象,带来潜在的混淆。 5.2 扩展类 1 继承关系定义 5.2 扩展类 class CommonEmployee extends Employee //子类1: { int m_ManagerNo ;//定义类属性m _ManagerNo,代表雇员上司的编号 } class ManagerEmployee extends Employee //子类2: { int m_SecretaryNo; //定义类属性m_SecretaryNo,代表秘书的编号 } 5.2 扩展类 2 属性继承与隐藏 尽管Employee类是一个父类,但是并不因为它是父类就意味着它有更多的功能。恰恰相反,子类比它们的父类具有更多的功能。因为子类是父类的扩展,增加了父类没有的属性和方法 (1)子类不能访问父类的private成员,但子类可以访问其父类的public, (2)protected访问是public和private访问之间一个保护性的中间层次。 (3)由于被继承的父类成员没有在子类声明中列出,但是这些成员确实存在于子类中。 5.2 扩展类 3 方法继承、覆盖与重载 1).方法继承 对于子类对象,可以使用父类中的方法。即使这些方法没有明显地在子类中定义,它们也自动地从父类中继承过来了。 2).方法覆盖 方法的覆盖是指:子类定义同名方法来覆盖父类的方法,是多态技术的一个实现。当父类方法在子类中被覆盖时,通常是子类版本调用父类版本,并做一些附加的工作。 见例5.1 例5.2 5.2 扩展类 关于覆盖应注意的事项 1、方法覆盖中,子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明,即与父类完全相同的方法名、返回值和参数列表。 2、子类可以添加字段,也可以添加方法或者覆盖父类中的方法。然而,继承不能去除父类中的任何字段和方法。 3、注意方法覆盖中的this和super 见下页: 5.2 扩展类 this和super 1、this表示的是当前对象本身,this代表当前对象的一个引用。可以理解为对象的另一个名字。利用this可以调用当前对象的方法和属性。 如:this.getName()和getName()在类中是一样的。 2、super表示的是当前对象的直接父类对象,是当前对象的父类对象的引用。 5.2 扩展类 3.方法重载 重载的定义:可以用相同的方法名但不同的参数表来定义方法(参数表中参数的数量、类型或次序有差异),这称为方法重载。 重载(overloading):当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选处调用哪个方法。它通过将在不同方法头部中的参数类型和在特定的方法调用中使用值的类型进行比较,从而挑选出正确的方法。 5.2 扩展类 4 在子类中使用构造函数 关于子类构造函数的规律总结如下: (1)子类构造函数总是先调用(显式的或隐式地)其父类的构造函数,以创建和初始化子类的父类成员。 (2)构造函数不能继承,它们只属于定义它们的类。 (3)当创建一个子类对象时,子类构造函数首先调用父类的构造函数并执行,接着才执行子类构造函数 5.2 扩展类 5 父类对象与子类对象的关系 1、子类对象可以被视为是其父类的一个对象; 2、父类对象不可被当作某个子类的对象; 3、如果一个方法的形式参数定义的是父类对象,那么调用这个方法时可以使用子类对象作为实际参数 4、如果父类对象引用指向的实际是一个子类对象,那么父类对象的引用可以强制类型转换为子类对象的引用 例:Employee e 5.2 扩展类 5 父类对象与子类对象的关系 调用过程:e. getSalary() 程序会选择正确的getSalar
您可能关注的文档
- 维生素时代——益生素时代-slideboom.ppt
- 为coolrunner-iicpld供电-xilinx.pdf
- 维生素第四节水溶性维生素.ppt
- 微涡旋控制多元强化水处理集成技术及应用研究-天津水与燃气信息.pdf
- 微丸型饲用复合酶在生长育肥猪饲料中的应用研究-溢多利.pdf
- 微藻生物分子在动物和水产养殖饲料中的应用-华中农业大学养殖与饲料.pdf
- 微生物絮凝剂及其产生菌的研究新进展.pdf
- 微生物聚集中的群体感应与交流合作-生物资源.pdf
- 微生物食品益生菌.pdf
- 微机原理复习思考题微型计算机和外设的数据传输.doc
- 金融与投资行业2025研究报告:金融科技在智慧城市建设中的核心地位与挑战.docx
- 饮料行业2025年新型甜味剂法规监管下的市场趋势与法规政策调整前瞻报告.docx
- 2025年教育直播平台在线教育平台政策法规与行业规范研究报告.docx
- 艺术市场数字化交易市场政策法规与行业自律研究报告.docx
- 2025年环境保护公众参与机制优化与生态环境保护政策实施报告.docx
- 2025年高速公路智能交通系统与智能交通监控与检测技术研究报告.docx
- 2025年消费与零售行业儿童教育用品市场消费趋势及消费者行为分析报告.docx
- 2025年农业新型经营主体农村电商发展路径研究报告.docx
- 疫情后线下演出市场恢复力评估与发展趋势预测报告.docx
- 教育信息化0下教学工具与翻转课堂模式的结合与应用报告.docx
最近下载
- 桥台计算书.doc VIP
- 2025年甘肃亚盛实业股份有限公司校园招聘模拟试题附带答案详解完整版.docx VIP
- 我国商业银行开展绿色信贷业务存在的问题和对策.docx VIP
- 甘肃亚盛实业股份有限公司校园招聘模拟试题附带答案详解附答案.docx VIP
- 2023年西安文理学院计算机应用技术专业《计算机组成原理》科目期末试卷A(有答案).docx VIP
- 2024年中国工会审计条例知识竞赛试题及答案.docx VIP
- VDA6.3过程审核检查表(中英文版)6.xls VIP
- 2024年山东水发集团高校毕业招聘笔试真题.docx VIP
- 甘肃亚盛实业股份有限公司校园招聘模拟试题附带答案详解完美版.docx VIP
- 双减背景下小学语文作业的优化设计.pptx VIP
文档评论(0)