轻松学Java之继承与多态

上传人:宝路 文档编号:48717792 上传时间:2018-07-20 格式:PPTX 页数:23 大小:478.67KB
返回 下载 相关 举报
轻松学Java之继承与多态_第1页
第1页 / 共23页
轻松学Java之继承与多态_第2页
第2页 / 共23页
轻松学Java之继承与多态_第3页
第3页 / 共23页
轻松学Java之继承与多态_第4页
第4页 / 共23页
轻松学Java之继承与多态_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《轻松学Java之继承与多态》由会员分享,可在线阅读,更多相关《轻松学Java之继承与多态(23页珍藏版)》请在金锄头文库上搜索。

1、第8章 继承与多态 在前面我们已经了解了类的基本使用方法。对于面 向对象的程序而言,它的精华在于类的继承可以以 既有的类为基础,进而派生出新的类。通过这种方 式,我们能快捷的开发出新的类,而不需要编写相 同的代码,从而大大将少了工作量。而运用类的多 态,通过方法的继承和重载,使类中对象有了更大 的灵活性。8.1 继承的概念 在Java中,从现有类出发定义一个新类,称为新类继 承了现有的类,其中被继承的现有类叫做超类( superclass)或父类,由继承而得到的类称为子类( subclass)。在Java中支持类的单继承和多层继承, 但是不支持多重继承,即一个类只能继承一个类而 不能继承多个类

2、。8.1.1 继承的实现 实现继承的格式如图8.1所示。 Java类的继承可用图8.2所示的语法来实现。8.1.2 成员字段的继承 父类中声明的字段可以在子类中直接继承,不需要 再声明。子类可以继承父类中的字段变成子类自身 的字段。8.1.3 成员方法的继承 成员方法也可以继承。父类中声明的方法,子类中 可以直接访问无需再声明,同样可以达到代码重用 的目的。子类除了可以继承父类中的字段及方法之 外,还可以增加自己的成员方法。8.2 访问修饰符 在编写程序的过程中,我们有时并不想父类所有 的成员都被子类继承,这时就可以通过访问修饰 符去限制继承和可访问权限。 我们先通过一个表大概了解一下有哪些修

3、饰符以 及它们对外部类和子类的可见性,如表8.1所示。成员访问 修饰符对对外部类类是否可见见对对子类类是否可见见public是是private否否protected否是default否是8.2 访问修饰符 这些修饰符修饰的父类和子类的继承关系大致如 图8.6所示。8.2.1 public访问修饰符 用public修饰的类成员(包括字段和方法)称为公有 的,公有成员允许Java系统中所有的类访问,外界可 以直接存取公有数据,调用公有方法。8.2.2 private访问修饰符 用private修饰的类成员称为私有的,类的私有成员只 能被这个类的方法直接访问。8.2.3 protected访问修饰符

4、 用protected修饰的类成员称为被保护的。类的被保护 成员允许其子类继承。如果一个类有派生子类,为 了使子类能够直接继承父类的成员,则把这些成员 (大部分是数据)说明为被保护的。8.2.4 default访问修饰符 如果类成员前面没有任何关键字修饰,则称为默认 的。默认的类成员除了允许被其归属的类访问外, 还允许同一个包中的其他类访问。8.3 方法的覆盖 方法的覆盖也是我们经常会遇到的情况。所谓“覆盖 ”,就是方法名称相同,但却在不同的场合做不同的 事。当一个子类继承一个父类中的方法的名称、参 数、类型等都完全一致时,就称子类中的这个方法 覆盖了父类中的方法。同样,如果子类中重新定义 了

5、父类中已有的字段,则称子类的字段覆盖了父类 中的字段。8.3.1 方法的覆盖格式 方法覆盖的语法格式如图8.11所示。8.3.2 super关键字 在Java的方法覆盖中我们经常要用到一个特殊的关键字 super关键字。super关键字的主要功能是完成子类在覆 盖了父类中的方法后,调用子类所复制的父类的字段和 方法。其语法格式如图8.13所示。 我们还可以使用super调用父类中的构造方法,这也是 super在程序中经常要用到的作用。8.3.3 几种不能使用方法覆盖的情况 并不是所有的方法都是可以被覆盖的。有时我们也 需要子类不能覆盖父类的方法。一般情况下,有三 种方法不能被子类覆盖,分别是:

6、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的一个子类。当这种类型的情形发生时,每个子 类继承

7、它的所有父类的属性。这种情况下,C继承B和 A的所有方面。8.5 多态 在前面的章节中我们已经为大家介绍了面向对象的 封装性和继承性。这一节我们继续为大家讲解Java最 后一个也是非常重要的特性多态。8.5.1 多态的基本概念 什么是多态呢?多态的本质是:一个程序中同名的 不同方法。在面向对象的程序中,多态可以表现在 很多方面,例如可以通过子类对父类方法的覆盖实 现多态,也可以通过一个类中方法的重载实现多态 ,还可以将子类的对象作为父类的对象实现多态。8.5.3 方法的重载 方法的重载就是在同一个类中允许同时存在一个以 上的同名方法,只要它们的参数个数或类型不同即 可,在这种情况下,该方法就叫

8、被重载了,这个过 程称为方法的重载。与方法的覆盖不同,重载不是 子类对父类同名方法的重新定义,而是类对自身已 有的同名方法的重新定义。8.5.3 方法的重载 在方法重载时,我们一定要注意重载时参数类型和个数匹配 问题。Java在遇到这类问题时,总是会按照赋值规则的。赋 值规则我们前面讲过,就是低精度的数值可以赋值给高精度 的变量;而高精度的值却不能赋给低精度的变量。例如,我 们可以将一个int值赋给一个double变量,却不能将一个 double值赋给一个int变量,如图8.26所示。8.5.4 对象引用实现多态 对象的引用型变量是具有多态性的,因为一个引用 型变量可以指向不同形式的对象,即:子类对象可 以作为父类对象来使用。 我们可以举一个现实中的例子,在一个单位中,有 职工(employee);职工中又有少数人是管理者( manager),管理者中又有一部分是领导。8.6 小结 本章主要给大家介绍了Java中的继承和多态的概念, 包括继承的基本机制、访问修饰符、方法的覆盖、 多层继承和实现继承的方法。重点是对成员访问和 覆盖方法的理解,难点是成员继承和方法覆盖以及 如何实现多态的掌握和灵活运用。本章内容是Java面 向对象的重点章节,希望大家努力掌握。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号