5面向对象.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文档。上传文档
查看更多
继承关系 子类继承了父类的哪些东西? SubClass类继承SuperClass类中的public和protected成员(字段、方法、内部类)。 当SubClass和SuperClass类是位于同一包中,SubClass类还会继承SuperClass类中的默认访问权限成员。 私有成员和构造器,绝对继承不到。 隐藏 满足继承的访问权限下: 隐藏父类静态方法:若子类定义的静态方法的签名和超类中的静态方法签名相同,那么此时就是隐藏父类方法。注意:仅仅是静态方法 隐藏父类字段:若子类中定义的字段和超类中的字段名相同(不管类型),此时就是隐藏父类字段,此时只能通过super访问被隐藏的字段。 隐藏本类字段:若同类中某局部变量名和字段名相同,此时就是隐藏本类字段,此时只能通过this访问被隐藏的字段。 注:不建议隐藏字段,这样的代码阅读性不高,也很累赘。 方法覆写原则 方法覆写的原则(一同两小一大): 一同:  实例方法签名必须相同。 (方法签名= 方法名 + 方法的参数列表) 两小:  子类方法的返回值类型是父类方法的返回值类型的子类或相同类。  子类方法声明抛出的异常应比父类方法声明抛出的异常更小或相等。 子类方法中声明抛出的异常小于或等于父类方法声明抛出异常类型; 子类方法可以同时声明抛出多个属于父类方法声明抛出异常类的子类(RuntimeException类型除外); 一大:  子类方法的访问权限比父类方法访问权限更大或相等。 方法覆写注意 方法覆写是建立可被继承的方法基础上而言的。父类构造方法、父类私有方法不能被继承,也就不能被覆写。 覆写方法和被覆写方法,必须都是实例方法。字段没有覆写概念,子类存在和父类方法签名相同的静态方法,不能叫覆写,只能称为隐藏。 判断是否是覆写方法的必杀技:@Override标签:若方法是覆写方法,在方法前或上贴上该标签, 编译通过,否则,编译出错。 编译类型和运行类型 前面说拓展关系是一种“is a”的关系,也就是说子类是父类的一种特殊情况,那么创建的子类对象是不是父类类型呢?一只猫是不是动物呢?若是,在代码上怎么体现 编译时类型:声明该变量时使用的类型,表示把对象看做是什么类型。 运行时类型:创建对象的类型是对象的真正类型,表示对象实际上是什么类型。 当对象的编译时类型和运行时类型不同时,就产出了现多态。 注意:编译类型和运行类型必须有继承关系,继承是多态产生的前提。 实例方法覆写和静态方法隐藏区别 多态时,Java虚拟机把静态方法和所属的类绑定,而把实例方法和所属的实例绑定。 即:被调用的覆写方法是子类的方法,被调用的隐藏方法是父类的方法。 区别覆写和隐藏经典例子: 成都传智播客教育 cd.itcast.cn 讲师:任小龙 Overload Override No. 区别点 重载(overload) 覆写(override) 1 判断 规则 两同一不同 一同两小一大 2 权限 没有权限要求 被覆写的方法不能拥有比父类更严格的权限 3 范围 发生在一个类之中 发生在继承关系中 4 术语 overload override 5 多态 编译时多态 运行时多态 成都传智播客教育 cd.itcast.cn 讲师:任小龙 super关键字 若要在子类中调用父类被隐藏的字段或被覆写的方法,此时怎么办? 表示调用该方法的对象的父类对象 如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法。 使用super调用父类方法 使用super调用父类的构造方法 使用super的情况: 在子类中访问父类的被隐藏的字段和被覆写的方法。 在子类的构造方法中,可使用super语句调用该类的父类的指定构造器。 成都传智播客教育 cd.itcast.cn 讲师:任小龙 子类对象实例化过程 在继承操作中,对于子类对象的实例化: 子类对象在实例化之前必须首先调用父类中的构造方法之后再调用自身的构造方法。 实例化子类对象 父类构造方法 自身构造方法 1.先调用 2.再调用 成都传智播客教育 cd.itcast.cn 讲师:任小龙 调用父类构造方法 调用构造方法 本类中调用另一个重载构造方法用this(参数列表) 子类构造方法调用父类构造方法用super(参数列表) 子类调用父类的构造方法时: super必须放在第一句 Java在执行子类的构造方法前会先调用父类无参的构造方法,其目的是为了对继承自父类的成员做初始化操作。 子类在创建对象的时候,默认调用父类的无参构造方法,要是子类构造方法中显示指定调用父类其他构造方法,就调用指定的父类构造方法,取消调用父类无参构造方法。 成都传智播客教育 cd.itcast.cn 讲师:任小龙 this s

文档评论(0)

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

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

1亿VIP精品文档

相关文档