轻松学Java之继承与多态.pptx_第1页
轻松学Java之继承与多态.pptx_第2页
轻松学Java之继承与多态.pptx_第3页
轻松学Java之继承与多态.pptx_第4页
轻松学Java之继承与多态.pptx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章继承与多态 在前面我们已经了解了类的基本使用方法 对于面向对象的程序而言 它的精华在于类的继承可以以既有的类为基础 进而派生出新的类 通过这种方式 我们能快捷的开发出新的类 而不需要编写相同的代码 从而大大将少了工作量 而运用类的多态 通过方法的继承和重载 使类中对象有了更大的灵活性 8 1继承的概念 在Java中 从现有类出发定义一个新类 称为新类继承了现有的类 其中被继承的现有类叫做超类 superclass 或父类 由继承而得到的类称为子类 subclass 在Java中支持类的单继承和多层继承 但是不支持多重继承 即一个类只能继承一个类而不能继承多个类 8 1 1继承的实现 实现继承的格式如图8 1所示 Java类的继承可用图8 2所示的语法来实现 8 1 2成员字段的继承 父类中声明的字段可以在子类中直接继承 不需要再声明 子类可以继承父类中的字段变成子类自身的字段 8 1 3成员方法的继承 成员方法也可以继承 父类中声明的方法 子类中可以直接访问无需再声明 同样可以达到代码重用的目的 子类除了可以继承父类中的字段及方法之外 还可以增加自己的成员方法 8 2访问修饰符 在编写程序的过程中 我们有时并不想父类所有的成员都被子类继承 这时就可以通过访问修饰符去限制继承和可访问权限 我们先通过一个表大概了解一下有哪些修饰符以及它们对外部类和子类的可见性 如表8 1所示 8 2访问修饰符 这些修饰符修饰的父类和子类的继承关系大致如图8 6所示 8 2 1public访问修饰符 用public修饰的类成员 包括字段和方法 称为公有的 公有成员允许Java系统中所有的类访问 外界可以直接存取公有数据 调用公有方法 8 2 2private访问修饰符 用private修饰的类成员称为私有的 类的私有成员只能被这个类的方法直接访问 8 2 3protected访问修饰符 用protected修饰的类成员称为被保护的 类的被保护成员允许其子类继承 如果一个类有派生子类 为了使子类能够直接继承父类的成员 则把这些成员 大部分是数据 说明为被保护的 8 2 4default访问修饰符 如果类成员前面没有任何关键字修饰 则称为默认的 默认的类成员除了允许被其归属的类访问外 还允许同一个包中的其他类访问 8 3方法的覆盖 方法的覆盖也是我们经常会遇到的情况 所谓 覆盖 就是方法名称相同 但却在不同的场合做不同的事 当一个子类继承一个父类中的方法的名称 参数 类型等都完全一致时 就称子类中的这个方法覆盖了父类中的方法 同样 如果子类中重新定义了父类中已有的字段 则称子类的字段覆盖了父类中的字段 8 3 1方法的覆盖格式 方法覆盖的语法格式如图8 11所示 8 3 2super关键字 在Java的方法覆盖中我们经常要用到一个特殊的关键字 super关键字 super关键字的主要功能是完成子类在覆盖了父类中的方法后 调用子类所复制的父类的字段和方法 其语法格式如图8 13所示 我们还可以使用super调用父类中的构造方法 这也是super在程序中经常要用到的作用 8 3 3几种不能使用方法覆盖的情况 并不是所有的方法都是可以被覆盖的 有时我们也需要子类不能覆盖父类的方法 一般情况下 有三种方法不能被子类覆盖 分别是 static方法 final方法和final类中的方法 为了使大家更好地理解这三种情况 我们分别举一个例子来说明 1 static方法2 final方法3 final类中的方法 8 4多层继承 我们在前面提到了在Java中类不可以进行多重继承 但是是可以进行多层继承的 对于多层继承 Java也只允许单继承 即一个子类只能有一个父类 当然 一个父类有多个子类也是允许的 图8 20所示的多重继承就是错误的 8 4多层继承 一般的多层继承的语法格式如图8 22所示 例如 给定三个类A B和C C是B的一个子类 而B又是A的一个子类 当这种类型的情形发生时 每个子类继承它的所有父类的属性 这种情况下 C继承B和A的所有方面 8 5多态 在前面的章节中我们已经为大家介绍了面向对象的封装性和继承性 这一节我们继续为大家讲解Java最后一个也是非常重要的特性 多态 8 5 1多态的基本概念 什么是多态呢 多态的本质是 一个程序中同名的不同方法 在面向对象的程序中 多态可以表现在很多方面 例如可以通过子类对父类方法的覆盖实现多态 也可以通过一个类中方法的重载实现多态 还可以将子类的对象作为父类的对象实现多态 8 5 3方法的重载 方法的重载就是在同一个类中允许同时存在一个以上的同名方法 只要它们的参数个数或类型不同即可 在这种情况下 该方法就叫被重载了 这个过程称为方法的重载 与方法的覆盖不同 重载不是子类对父类同名方法的重新定义 而是类对自身已有的同名方法的重新定义 8 5 3方法的重载 在方法重载时 我们一定要注意重载时参数类型和个数匹配问题 Java在遇到这类问题时 总是会按照赋值规则的 赋值规则我们前面讲过 就是低精度的数值可以赋值给高精度的变量 而高精度的值却不能赋给低精度的变量 例如 我们可以将一个int值赋给一个double变量 却不能将一个double值赋给一个int变量 如图8 26所示 8 5 4对象引用实现多态 对象的引用型变量是具有多态性的 因为一个引用型变量可以指向不同形式的对象 即 子类对象可以作为父类对象来使用 我们可以举一个现实中的例子 在一个单位中 有职工 employee 职工中又有少数人是管理者 manager 管理者中又有一部分是领导 8 6小结 本章主要给大家介绍了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论