- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五讲继承和多态2011春修订3学时
继承和多态 计算机学院 李建伟 副教授 lijianwei@scse.hebut.edu.cn 本章内容 5.1 类的继承 5.2 抽象类 5.3 最终类 5.4 接口 5.5 包 5.6 访问控制(限定)符 5.1 类的继承 现代软件设计强调软件重用,面向对象的继承机制为软件的重用提供良好的支持。 继承是存在于面向对象程序中两个类之间的一种关系:被继承的类称为父类或超类,而继承父类或超类的所有属性和方法的类称为子类。 父类实际是所有子类的公共域和公共方法的集合,而每一个子类则是父类的特殊化,是对公共域和方法在功能、内涵方面的扩展和延伸. 子类可以继承超类中非private方法和属性,并且子类中还可以增加新的属性和方法。 5.1 类的继承 在子类中,包括了两部分的内容:从超类中继承的成员变量和方法,自己新增加的变量和方法。 使用继承的主要优点是使程序结构清晰、降低编码和维护的工作且。继承为组织和构造软件程序提供了一个强大的和自然的机理。 Java中,只支持单重继承,不支持多重继承,所以一个类只能有一个超类。 如何使用继承 使用继承可以在定义类时使用extends关键字。 [修饰符] class 子类名extends 超类名 {子类体} 例如:课本的vehicle.java 子类继承超类的成员方法 原则 子类不能继承超类的private成员方法 子类不能继承超类的构造方法 子类能继承超类的public 和protected成员方法 子类能够继承同一包中,有默认权限修饰符的成员方法 方法的重载 在一个类中用相同的方法名字定义多个方法体不同的方法,每个方法用所带参数个数、参数类型、参数排列的不同来区分。 例如:课本例5-1 运用重载技术最多的就是构造函数的重载 课本例5-3 方法的覆盖(重写) 方法的覆盖又叫做方法的重写。 子类的方法名和超类的方法名重名时,且参数和返回值也完全相同,超类的成员方法被子类的成员方法覆盖(不能继承)。 方法的覆盖可以实现与父类方法中的方法的不同功能。方法的覆盖是多态性的一种,即同一个方法在子类、超类中可以以多种形态出现。 如何区分父类还是子类的方法 Java语言中,当调用一个对象的方法时, 1、首先在对象所在的类中寻找该方法。 2、如果没有找到,Java会把这个方法调用传 到类层次的上一层(直接父类),直到找到这个方法并调用。 3、如果到顶层类也没有找到,则系统将提示未能找到的错误信息。 课本例5-2 覆盖(重写)的规则 方法覆盖即子类的方法和父类的方法名称和参数都相同。 Java方法覆盖须遵循三个规则: 1、返回值必须相同。 2、子类方法不可比父类被覆盖的方法更难访问。 3、子类方法不可声明抛出更多的异常。 执行被覆盖的方法 多数情况下,子类只想把父类的方法作些扩充,即在子类中执行父类被覆盖的方法以便在其基础上扩充,而不是全部重写代码,可以利用super关键字应用父类的方法。 在子类中引用父类的方法可以用super.父类方法名。 对象的初始化过程 使用super()语句调用父类构造器 每个构造器中,如果没有this()语句,都有一个默认的第一条语句super(); 表明调用父类的不带参数的构造器。 创建对象时构造器会从父类到子类都执行一遍。 在编制构造器时可以自己编写带参数的super()来控制执行父类的带参数的构造器。 完整的对象初始化过程 使用new创建对象时,首先会为对象分配内存,然后各个成员变量有个默认的初始值,全部填0. 随后执行构造方法。 构造方法的执行规则: 1、如构造方法有参数,首先进行参数匹配,选择相应的构造方法。 2、若没有this()语句,其执行的顺序是:super() , 显式初始化,构造方法体。 3、若构造方法有this()语句,其执行的顺序是: 重载的构造方法,构造方法体。 变量的多态性 类型为X的参考变量,其指向的对象类型既可以是X,也可以是X的子类。 但是在实际中,变量能访问那些成员变量还是由变量类型决定的。 例如: Employee x=new Employee(); Employee y=new Manager(); y.Department编译通不过,y的本质是Employee类的对象,而不是Manager类的对象。 用于异类搜集 变量多态的一种用法是异类搜集,即通过一个对象把不同的对象组合在一起。 例如 Employee x[]=new Employee[3]; X[0]=new Employee(); X[1]=new Employee(); X[2]=new Manager(); 类型为X的数组中存放的对象既可以是X类型
您可能关注的文档
- 第五章x射线衍射原理03级.ppt
- 第二章动物体的基本结构、繁殖与个体发育.ppt
- 第五章中国古代婚姻制度的发展.ppt
- 第五章多方案的经济性比较和选择.ppt
- 第二讲表面科学与工程的基础理论.ppt
- 第二节细胞的分化、凋亡、癌变.ppt
- 第五章总体均数的估计与假设检验200909111.ppt
- 第五章分子生物学研究方法220120411.ppt
- 第五章法约尔的一般管理理论.ppt
- 第五章晶体中电子能带理论布洛赫波函数.ppt
- 2025年大学试题(医学)-行为医学笔试考试历年典型考题及考点含含答案.docx
- 2025年大学试题(教育学)-中外教育史笔试考试历年典型考题及考点含含答案.docx
- 2025年大学试题(大学选修课)-如何做MOOC课程笔试考试历年典型考题及考点含含答案.docx
- 2025年中国凹印辊市场调查研究报告.docx
- 2025年中国反光路牌市场调查研究报告.docx
- 2025年中国光敏油市场调查研究报告.docx
- 2025年中国办公信息文档管理系统市场调查研究报告.docx
- 2025年中国化工填料球市场调查研究报告.docx
- 2025年中国全自动识别分析红外信号译码器市场调查研究报告.docx
- 2025年中国吉祥物八音发光电喇叭市场调查研究报告.docx
文档评论(0)