JAVA核心编程技术5.ppt

JAVA核心编程技术5.ppt

ID:49908917

大小:1.87 MB

页数:32页

时间:2020-03-04

JAVA核心编程技术5.ppt_第1页
JAVA核心编程技术5.ppt_第2页
JAVA核心编程技术5.ppt_第3页
JAVA核心编程技术5.ppt_第4页
JAVA核心编程技术5.ppt_第5页
资源描述:

《JAVA核心编程技术5.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章继承和多态性5.1继承的概念5.3访问修饰符和继承性5.2子类的创建5.4is-a和has-a之间的联系5.5成员变量的隐藏和方法重写5.6super关键字5.8final关键字5.7继承的层次性5.9多态性5.10Object类5.1继承的概念继承是面向对象程序设计的一个主要特征,是一种由已有的类创建新类的机制。它允许创建分等级、分层次的类。利用继承,我们可以先创建一个具有一系列相关对象的一般特性的通用类,然后根据该通用类再创建具有特殊特性的新类。新类继承通用类的状态和行为,并根据需要增加自己的新的状态和行为。由继承而得到的类称为子类或派生类,

2、被继承的通用类称为父类、超类或基类。继承反映了类型之间的静态联系,它很好地模拟了现实世界中的分类别、多层次的对象关系,子类和超类的关系是一种“isa”的关系。在编程技术中,继承是一种代码复用技术,它使得我们可以在一定的基础上进行开发工作,而不需要一切从零开始。5.2子类的创建子类的创建与我们前面所介绍的类的创建包含的内容几乎是一样的,一样包含了类的声明和类体两个部分,不同的地方是需要在声明子类时体现子类的继承性。子类继承超类是通过在子类的声明语句后面使用关键字“extends”来体现的。创建子类的一般语法格式如下:访问修饰符][类型修饰符]class子

3、类名extends超类{[子类成员变量声明][子类方法定义]}上述例子声明Manager类为Employee类的子类,Employee类是Manager类的超类。注:如果一个类的声明中没有使用extends关键字,则会被系统默认为是Object类的子类。5.3访问修饰符和继承性子类能继承超类的状态和行为,即子类能继承超类的成员变量和方法。子类继承超类的成员变量和方法,就象它们是在子类中直接声明和定义的一样,可以被子类定义的方法操作。从前面有关章节内容的讨论中,我们也知道类的每个成员都被赋予一定的访问权限,通过访问权限可以使类的成员不被其他类以末授权方式

4、访问。所以虽然子类能继承超类的成员变量和方法,但并不意味着超类的所有成员变量或方法都能被子类继承,子类的继承性需要由类成员访问修饰符来决定。下面我们来讨论子类的继承性和访问修饰符的关系。5.3访问修饰符和继承性5.3.1访问修饰符类访问修饰符声明类时可使用两种访问修饰符:public和缺省。使用public修饰符声明的类为公有类,使用缺省修饰符(即没有任何修饰符)声明的类为友好类。公有类可以被包内和包外的任意类访问,即在任意类中,public类都是可见的;友好类只能被同一个包中的类访问,对同一个包中的类中是可见的。所以如果希望包中的成员能被包外的类访问

5、,必须将类声明为public。类成员访问修饰符(1)private访问修饰符声明的成员变量和方法称为私有变量和私有方法。(2)public修饰符声明的成员变量和方法称为公有变量和公有方法。(3)protected访问修饰符声明的成员变量和方法称为受保护的变量和受保护的方法。(4)缺省访问修饰符声明的成员变量和方法称为友好变量和友好方法。5.3访问修饰符和继承性5.3.2子类的继承性子类能继承超类的成员变量和成员方法,在继承过程中,需要注意的是,类的每一个成员都被赋予了一定的访问权限,成员访问权限不同,子类对它的继承性也不同。子类对超类的继承性主要有以下

6、三种情况:1.超类的private变量和private方法不能被子类继承。2.在同一个包中,子类能继承超类的所有非private成员。5.4is-a和has-a关系is-a和has-a是表示类之间相互关系的两种方式,is-a表示了类之间的静态联系,而has-a则表示了类之间的动态联系。is-a表示的是一种属于关系,是“一般和具体”的关系;而has-a表示的则是一种包含关系,是一种“整体和部件”的关系。5.5成员变量的隐藏和方法重写子类继承超类后,自动继承超类的非私有成员变量和成员方法,但如果在子类中定义了与超类同名的成员变量,且这些成员变量在超类中是非

7、私有的,则超类的这些成员变量不能被子类继承,此时称子类的成员变量隐藏了超类的成员变量。另一方面,如果在子类中定义了一个方法,这个方法的名字、返回类型和参数声明与超类的某个方法完全相同,并且超类的这个方法是非私有的,此时超类的这个方法被子类隐藏而不能被子类继承,称这时子类的这个方法覆盖(override)或重写了超类的同名方法。5.5成员变量的隐藏和方法重写子类通过成员变量的隐藏和方法的重写可以把超类的状态和行为改变为自身的状态和行为。如果子类重写了超类的方法,则运行时系统调用子类重写的方法,否则调用继承的方法。在重写超类方法时应注意以下两点:1.重写超

8、类的方法时,可以保持或提升访问级别,但不允许降低方法的访问级别。2.在子类中,如果要访问被子类

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。