网站大量收购独家精品文档,联系QQ:2885784924

第三章继承与多态.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  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文档。上传文档
查看更多
第三章继承与多态

第三章 继承和多态 本章要点 一、继承和多态的概念 二、类成员的继承 2.1 属性与方法的继承 2.2 this 和super 的使用 2.3 构造函数的继承和重载 2.4 最终类和最终类成员 2.5 对象在继承关系中的改变 2.6 抽象类在继承中的特点 一、继承和多态的概念 1、 继承的概念: 通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类成为父类,后定义的类称为子类,并且允许多层的继承关系 Java中的类是以类的层次来存在的。Java中的类可用extends关键字来声明为另一个类的子类(subclass).子类从父类(superclass)那里继承(inherit)变量和方法,然后可像在子类中声明的一样来使用这些变量和方法. 继承的定义 public class Vehicle{ String color=“white”; protected float speed; public void accelerate(){ } …….. } 注: 继承能够使子类拥有父类的非私有属性和方法,而不需要在子类的类定义时重新定义父类的这些属性和方法,子类即可以保持父类原有的属性和方法,也可以对从父类那里继承而来的属性和方法进行修改,在定义了继承关系后,我们改动父类的一个属性或方法时,子类也会自动改变,但是这些属性和方法必须是非私有,并且没有被子类重新定义的 多态的概念 多态是指在一棵继承树中的类可以有多个同名但不同方法体以及不同形参的方法。 两种情况: 覆盖:在子类中直接定义和父类同样的属性和方法,但重新编写了方法体,即子类与父类方法的星参与返回值都相同,而内部处理不同,这种方法在使用过程中,Java虚拟机会根据调用这个方法的类来确定哪个方法被调用 重载:同一个类定义中有多个同名的方法,但有不同的形参,而且每个方法有不同的方法体,调用时根据形参的个数和类型来决定调用的是哪个方法 注:不能根据返回值的类型来区分重载的方法 二、 类成员的继承 类成员:属性、方法、构造函数 属性的继承 属性的继承:子类不需要再定义就拥有了父类已有的非私有属性 注:继承了属性,表示子类被创建时另开辟了新的空间来存储从父类继承而来的属性,其初值应该是父类中该属性的初值,但之后,双方的相同属性就是彼此相互独立的变量了。只有当父类的该属性的定义发生了变化,子类中的该属性定义也跟着发生变化 属性的覆盖:子类可以重新定义父类的非私有属性,这样,子类定义了一个与父类同名的属性,并且子类也继承了父类的该属性,在使用时通过调用该属性的变量或者方法来决定使用哪一个。 public class Father{ int a=100; public void miner(){ a--; } public static void main(String[] arg){ Father x=new Father(); Son y=new Son(); System.out.println(a of son is : +y.a); System.out.println(a of sons super is : +y.getA()); y.miner(); System.out.println(a of son is :+y.a); System.out.println(a of sons super is : +y.getA()); } } 方法的继承 方法的继承:子类不需要重新定义就可以拥有父类的非私有方法 方法的覆盖:子类定义一个和父类同名而且同形参表的方法,如果子类中需要用父类的被覆盖的方法,可使用关键字super来实现 方法的重载: 方法的覆盖与重载的区别 方法的覆盖是子类和父类之间的关系,而重载是同一类内部多个方法间的关系 方法的覆盖一般是两个方法间的,而重载时可能有多个重载方法 覆盖的方法有相同的方法名和形参表,而重载的方法只能有相同的方法名,不能有相同的形参表 覆盖时区分方法的是根据调用他的对象,而重载是根据形参来决定调用的是哪个方法 用final修饰的方法是不能被子类覆盖的,只能被重载 public class Detergent extends Cleanser{ public void scrub(){ append(Detergent.scrub()); super.scrub();} public void foam(){append(foam());} public

文档评论(0)

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

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

1亿VIP精品文档

相关文档