- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四章继承和多态
第四章 继承和多态 继承和多态 4.1继承基础 4.2构造器的调用顺序 4.3 继承还是组合? 4.4 Object类 4.5 toString方法 4.6 对象的比较 4.1继承基础 类与类之间还有一种父与子的关系,子类继承父类方法与属性,这个我们就称之为继承 子类拥有父类的一些公有的属性和方法,并且子类可能也会有自己的方法和属性 除了添加父类中没有的新方法外子类还可以通过重写父类的方法来重定义自己的行为方式 继承基础 重写与重载不同,重载需要不同的参数来区别相同方法名的方法,重写是发生在子类与父类上,重写父类方法必须与父类的方法名同名同参并且同返回值 。 当访问修饰符为private时,表明该方法不能被重写,同样当方法具有final关键字时该方法不能被重写 。 子类虽然重写了父类的某个方法,但仍然需要用到父类的这个方法,这时使用super关键字仍然可以调用父类的方法 。 程序4.1 TestExtends.java示例继承机制 程序4.2 TestOstrich.java public class TestOstrich { public static void main(String[] args) { Bird ostrich1 =new Ostrich(); //向上转型 ostrich1.fly(); } } class Bird { public static void fly(){ System.out.println(Bird Flying!); } } class Ostrich extends Bird{ public static void fly(){ System.out.println(I cant fly!); } } 输出结果:Bird Flying! Static方法不能重写 Bird类派生了鸵鸟Ostrich类 ,以上程序声明了一个Bird类型的鸵鸟对象,象基本类型数据的自动提升一样,鸵鸟自动提升为Bird类,这叫做向上转型。 static方法是不会被重写 如TestOstrich.java所示:子类中定义了与父类同名的fly方法,父类的fly方法不会被重写,而是被遮蔽因此得出结果鸵鸟会飞! 4.2构造器的调用顺序 子类在产生对象实例时首先会调用父类的构造方法,如果没有显示的指定调用父类自定义的构造方法,那么编译器会调用默认的父类构造方法:super()。但是父类如果自定义了带参数的构造方法,就必须在子类的构造方法中指定调用它,否则会因找不到super()而报错。注意,如果需要显示的调用父类构造方法,必须将其写在构造方法里的第一行 。 接着按声明的顺序调用成员初始化。 最后调用本构造方法的方法体 例:程序4.3 TestInheritanceConstructor.java 4.3 继承还是组合? 判断继承关系的一条定律是看它是否符合is-a的定义 继承打破了类的封装子类继承了父类的成员就意味着父类成员有所改变时子类必须随之变化,这削弱了子类的独立性,增加了软件维护的难度。 继承的层次不宜过多,设计时良好的继承体系应该保持在三层以内。 我们复用类时的指导原则是优先选择组合 例子:程序4.4 CallOffNumbers.java 4.4 Object类 Java中所有的类都是继承自一个老祖宗,Object类,它们都是Object类的子类。如果一个类在声明时没有用extends关键字显式的指定继承自某个基类,则Java隐式的指定它的默认基类为Object类。 这种强制的继承模式叫做单根继承模式。单根继承使得Java简化了许多操作,基于单根继承,所有的对象都可以像基本数据类型一样向上转型到根层次上而使其操作上一视同仁 单根继承的优势还在于可以在Object类定义所有对象都通用的方法,所有类都会自动继承这些方法 4.5 toString方法 Object类定义了 public String toString()方法,返回值是String类型,每当个对象都会有个toString方法,作用就是描述对象的信息 要想使用toString方法必须按自己的需求重写这个方法 例子:程序4.6 TestToString.java 4.6 对象的比较 Java中比较两个基本数据类型变量的值时很简单使用“==”操作符 Object类中的equals方法提供了对象内容的比较方法 同样我们要是用这个方法必须重写它 如果不重写equals方法,将调用object类的eaquals方法。Object类的equals方法相当于“==” 例:程序4.7 TestEquals.java 4.7多态 4.7.1向上转型(upcasting)
您可能关注的文档
- 关于政法干部三严三实严以修身会议记录 精选范文.doc
- 四章文件系统.ppt
- 四章描述研究descriptivestudy卫生系陈鹏.ppt
- 四章数据的存储方法.ppt
- 四章文字处理基础.ppt
- 四章文明旅游.ppt
- 四章文献综述.ppt
- 关于财政严以用权学习心得体会.doc
- 四章新古典国际贸易理论.ppt
- 四章新古典国际贸易理论赫克歇尔俄林模型.ppt
- 中考语文总复习语文知识及应用专题5仿写修辞含句子理解市赛课公开课一等奖省课获奖课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第二课《藏猫猫》精品课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第三课《我向国旗敬个礼》精品课件.pptx
- 高中生物第四章生物的变异本章知识体系构建全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 整数指数幂市公开课一等奖省赛课微课金奖课件.pptx
- 一年级音乐上册第二单元你早全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级数学上册第二章实数27二次根式第四课时习题省公开课一等奖新课获奖课件.pptx
- 九年级物理全册11简单电路习题全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级语文下册第五单元19邹忌讽齐王纳谏省公开课一等奖新课获奖课件.pptx
- 2024年秋季新人教PEP版3年级上册英语全册教学课件 (2).pptx
最近下载
- 创业计划书模板文具店.docx
- 查莉成长日记中英台词对照版S01E01 Good Luck Charlie.doc VIP
- 2025年张家界航空工业职业技术学院单招职业技能测试题库1套.docx VIP
- 实用骨科学(可编辑).pdf VIP
- 2025年烟台南山学院单招语文考试题库及答案解析.docx
- 2023届山东省济宁市高考一模化学试题.pdf VIP
- 2025年湖南化工职业技术学院单招职业适应性测试题库及完整答案一套.docx VIP
- 第三单元名著导读《经典常谈》教学实录+2022—2023学年部编版语文八年级下册.docx
- 汽车结构与拆装PPT课件556.pptx VIP
- 标准图集-陕22G03-墙下条形基础.pdf
文档评论(0)