2015.6.17--java第七章继承及多态章总结.docVIP

2015.6.17--java第七章继承及多态章总结.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
继承和多态 1.继承的作用: 它是面向对象的三大特征之一,可以解决编程代码冗余的问题,是实现代码重用的重要手段之一。继承是软件可重用性的一种表现,新类可以在不增加自身代码的情况下,通过从现有的类中继承其属性和方法,来充实自身内容,这种表现或行为就称为继承。这个时候新类称为子类,现有的类称为父类。它最基本的作用就是:使得代码可重用,增加软件的可扩充性。 2.继承的语法: [访问修饰符] class SubClass extendsSuperClass; a.通过extends实现继承 subclass 是子类 后者是父类。 b.如果访问修饰符是public,那么该类在整个项目可见。 不写访问修饰符,该类只在当前包可见。 c.子类可以从父类中继承,public和protected修饰的属性和方法,不论子类和父类是否在同一个包里。 d.子类还可以继承默认访问修饰符修饰的属性和方法,但是子类和父类必须在同一个包里。 E.子类无法继承父类的构造方法。 3.多重继承关系的初始化顺序: 父类属性父类构造方法子类属性子类构造方法。 4.实例化子类对象: 创建该类的对象。 创建该类的子类的对象。 子类在实例化时,会首先执行父类的构造方法,然后才执行子类的构造方法。 5.子类继承父类时,构造方法的调用规则如下: 如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统默认先调用父类的无参构造方法,在这种情况下是否写入super语句,效果是一样的。 如果子类的构造方法中通过super显式调用父类的有参构造方法,那么将执行父类相应的构造方法,而不执行父类的无参构造方法。 如果子类的构造方法中通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则。 注意:如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直执行到顶级父类object类的无参构造方法为止。 注意:在类没有提供任何构造方法时,系统会提供无参的方法体为空的默认构造方法,一旦提供了自定义构造方法,系统将不会提供这个默认的构造方法,如果要使用它,程序员必须手动添加。 6.object类 它是所有类的父类。在java中所有的java类都直接或间接的继承了java.lang.object类。在定义一个类时,没有使用extends关键字,也就是没有显式地继承某个类,那么这个直接继承object类,所有对象都继承这个类的方法。 Object类定义大量的可被继承的方法。 7.继承中的方法重写。 子类可以根据需求对从父类继承的方法进行重写,这称为方法的重写或方法的覆盖(overriding)。 如果子类从父类中继承的方法不能满足子类的需求,可以在子类中对父类的同名方法进行重写(覆盖)。 8.继承中方法重写的要求 重写方法与被重写方法必须具有相同的方法名(和方法重写一样) 重写方法与被重写方法必须具有相同的参数列表(不一样) 重写方法的返回值类型和被重写方法的返回值类型相同。(不一样) 重写方法不能缩小被重写方法的访问权限。 在继承父类方法的基础上只能修改返回值类型和方法体内容。 9.重载(overloading)和重写(overriding)的区别。 重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关。 重写涉及的是子类和父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同。 10.多态 多态一词的通常含义是指能够呈现出多种不同的形式或形态。在程序设计中,它意味着一个特定类型的变量可以引用不同类型的对象。并且能够自动地调用引用的对象的方法。也就是根据作用到的不同对象类型,响应不同的操作。方法重写是实现多态的基础。 /*Dog dog =new Dog(); dog.toHospital(); Bird bird =new Bird(); bird.toHospital();*/ Pet pet; pet=new Dog(); pet.toHospital(); pet=new Bird(); pet.toHospital(); 这两段代码的执行结果一样(page179),虽然定义的是Pet类,但是实际执行的时候是Pet子类的方法,这里的代码就体现了多态性。 多态意味着在一次方法调用中是根据包含的对象的实际类型(即实际的子类对象)来决定应该调用哪个方法。而不是用来储存对象引用的变量的类型来决定的。当调用一个方法时,为了得到多态的操作,这个方法即要是父类中声明过的,也必须是子类中重写过的方法。 11.向上转型 a.定义:子类到父类的转换成为向上转型。 将一个父类的引用指向一个子类对象,称为向上转型,自动进行类型转换。

文档评论(0)

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

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

1亿VIP精品文档

相关文档