java课件——第五章.pptVIP

  1. 1、本文档共35页,可阅读全部内容。
  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文档。上传文档
查看更多
教学公共群教学公共邮箱:ldxylmj@126.com 第五章 继承与多态 《主要内容》 继承 多层次类 多态与重载 方法的动态调度 抽象类 5.1 继承 5.1.1继承 运用继承能够创建一个通用类,该类还可以被更具体的类继承,每个具体的类都增加一些自己特有的性质。 在Java术语中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此子类是超类的一个专门用途的版本,它继承了超类定义的所有实例变量和方法,并且为它自己增添了独特的元素。 class 子类名 extends 父类名 { 类体 } (1)父类的所有属性和方法都会被子类继承,无论其是何种访问权限. (2)子类虽继承了父类的所有的属性和方法,但是子类中能够使用哪些属性和方法却受到访问权限的限制. (3)构造函数不属于成员,因此它不能够被继承. 5.1.2 super关键字 子类可以继承父类的所有属性(虽然子类中不一定能引用到父类的所有属性).这时很可能出现这样一种情况:父类与子类定义了重名的属性.这时该如何处理呢? 任何时候一个子类需要引用它直接的超类,可以用关键字super来实现。 原则: (1)可以通过super显式的调用父类属性 (2)可以通过this显式的调用本类属性 (3)如果不显式的指明,通过父类方法使用的就是父类的属性,通过子类的方法使用的是子类的属性 (4)如果变量名和局部变量重名,又没有显式的调用,则使用的是局部变量的值 1、使用super调用父类的构造函数 何时调用构造函数 super()必须是子类构造函数的第一个执行语句,无论用到super()没有,这个次序不变,如果super()没被调用到,将会执行每个超类的无参的构造函数。 3、object类和final关键字 在Java中,定义有一种特殊的类object,,其他所有的类都是object的子类。也就是说,object是所有其他类的超类。这意味着一个object类型的引用变量可以引用其他任何一个类的对象。 final关键字 final关键字有三个用途:首先,它可以用来创建一个常量。final的其他两个用法是用于继承中 1、使用final阻止继承 final class A { // ... } class B extends A { // ERROR! Cant subclass A // ... } 2、使用final阻止重载 class A { final void meth() {System.out.println(This is a final method.);} } class B extends A { void meth() {// ERROR! Cant override.} } meth()被声明成final,不能被B重载,会生成一个编译错误。 5.2 创建多层次类 5.3 多态与重载 多态是面向对象程序设计的基本特性之一,而重载则是多态的一种体现形式。 多态即程序中同名的不同方法共存的情况,常见的两种多态方式为: ①子类对父类方法的覆盖; 方法覆盖(也叫做方法的重写) 子类定义方法头与父类方法完全相同的方法,是多态技术的一个实现。 ②利用重载在同一个类中定义多个同名的不同方法。 重载(overloaded)是类对自身已有的同名方法的重新定义,方法间仅是参数不同,而方法名相同。重载可发生在一个类内部,也可以发生在继承中的父类子类之间。 常见的如构造函数的重载。构造函数可以从超类那里继承,也可以互相重载。类的若干个构造函数可以相互调用,一个构造函数调用另一构造函数时,可以使用关键字this。同时,这个调用语句应该是整个构造函数的第一个可执行语句。 通过父类对象的引用来使用子类对象, 能够使用的方法范围由父类决定.但是需要注意的是,如果此方法已被子类覆盖,则实际调用的将是子类的方法。 为什么要重载方法 重载方法允许Java支持运行时多态性。多态性是面向对象编程的本质,原因如下:它允许通用类指定方法,这些方法对该类的所有派生类都是公用的。同时该方法允许子类定义这些方法中的某些或全部的特殊实现。重载方法是Java实现它的多态性—“一个接口,多个方法”的另一种方式。 父类对象与子类对象的使用与转化 (1)子类对象可以被视为是其父类的对象; (2)父类对象不能当成是其某一个子类的对象; (3)如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为形式参数; (4)如果父类对象引用指向的实际是一个子类对象,那么这个父类对象的引用可以用强制类型转换转化成子类对象的引用。 5.5 抽象类

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档