Java-核心标称技术图文课件--5.pptx
《Java-核心标称技术图文课件--5.pptx》由会员分享,可在线阅读,更多相关《Java-核心标称技术图文课件--5.pptx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1%大连理工大学出版社地址:大连市软件园路80号发行:0411-84708842E-mail:DutpD(第二版)主编:张屹蔡木生新世纪应用型高等教育软件专业系列规划教材Java Java Java Java 核心编程技术核心编程技术核心编程技术核心编程技术 2 绩效概述绩效管理绩效管理实施过程KPI与BSc第 2 页第五章继承和多态性5.2子类的创建5.1继承的概念5.3访问修饰符和继承性5.5成员变量的隐藏和方法重写5.4is-a和has-a之间的联系 目 录 5.6super关键字5.8 final关键字5.7继承的层次性5.9多态性5.10Object类 3 第五章继承和多态性5.1
2、继承的概念继承是面向对象程序设计的一个主要特征,是一种由巳有的类创建新类的机制。它允许 创建分等级、分层次。利用继承,我们可以先创建一个具有一系列相关对象的一般特性的通用 类,然后根据该通用类再创建具有特殊特性的新类。新类继承通用类的状态和行为,并根据需 要增加自己的新的状态和行为。由继承而得到的类称为子类或派生类,被继承的通用类称为 父类、超类或基类。继承反映了类型之间的静态联系,它很好地模拟了现实世界中的分类别、多层次的对象关系。在编程技术中,继承是一种代码复用技术,它使得我们可以在一定的基础 上进行开发工作,而不需要一切从零开始。4 第五章继承和多态性5.2子类的创建4.2.3 Stri
3、ngBuffer类的常用方法的常用方法1.对象自身操作子类的创建与我们前面所介绍的类的创建包含的内容几乎是一样的,一样包含了类的声明和类体两个部分,不同的地方是需要在声明子类时体现子类的继承性。子类继承超类是通过在子类的声明语句后面使用关键字“extends”来体现的。创建子类的一般语法格式如下:访问修饰符类型修饰符 class 子类名 extends 超类子类成员变量声明子类方法定义上述例子声明Manager类为Employee类的子类,Employee类是Manager类的超类。注:如果一个类的声明中没有使用extends关键字,则会被系统默认为是Object类的子类。5 第五章继承和多态
4、性5.3访问修饰符和继承性子类能继承超类的状态和行为,即子类能继承超类的成员变量和方法。子类继承超类的成员变量和方法,就象它们是在子类中直接声明和定义的一样,可以被子类定义的方法操作。从前面有关章节内容的讨论中,我们也知道类的每个成员都被赋予一定的访问权限,通过访问权限可以使类的成员不被其他类以末授权方式访问。所以虽然子类能继承超类的成员变量和方法,但并不意味着超类的所有成员变量或方法都能被子类继承,子类的继承性需要由类成员访问修饰符来决定。下面我们来讨论子类的继承性和访问修饰符的关系。6 第五章继承和多态性5.3访问修饰符和继承性1.类访问修饰符类访问修饰符声明类时可使用两种访问修饰符:pu
5、blic和缺省。使用public修饰符声明的类为公有类,使用缺省修饰符(即没有任何修饰符)声明的类为友好类。公有类可以被包内和包外的任意类访问,即在任意类中,public类都是可见的;友好类只能被同一个包中的类访问,对同一个包中的类中是可见的。所以如果希望包中的成员能被包外的类访问,必须将类声明为public。2.类成员访问修饰符类成员访问修饰符(1)private访问修饰符声明的成员变量和方法称为私有变量和私有方法。(2)public修饰符声明的成员变量和方法称为公有变量和公有方法。(3)protected访问修饰符声明的成员变量和方法称为受保护的变量和受保护的方法。(4)缺省访问修饰符声明
6、的成员变量和方法称为友好变量和友好方法。5.3.1 访问修修饰符符 7 第五章继承和多态性5.3访问修饰符和继承性子类能继承超类的成员变量和成员方法,在继承过程中,需要注意的是,类的每一个成员都被赋予了一定的访问权限,成员访问权限不同,子类对它的继承性也不同。子类对超类的继承性主要有以下三种情况:5.3.2 子子类的的继承性承性 8 第五章继承和多态性5.3访问修饰符和继承性1.在同一个包中,子类能继承超类的所有非private成员。例如:package mypackage1;class Animal public int legs;protected float weight;String
7、color;private void f()package mypackage1;class Cat extends Animal void g()Cat tom=new Cat();tom.legs=4;/合法,继承了公有变量tom.weight=23f;/合法,继承了受保护的变量tom.color=“白色”;/合法,继承了友好变量tom.f();/非法,私有方法没有被继承,不能被访问 5.3.2 子子类的的继承性承性 9 第五章继承和多态性5.3访问修饰符和继承性2.在不同包中,子类只能继承超类的public和protected成员。例如:package mypackage1;public
8、 class Animal /类的访问修饰符必须为public,才能被其他包中的类可见 public int legs;protected float weight;String color;private void f()package mypackage2;import mypackage1.Animal;class Cat extends Animal public static void main(String args)Cat tom=new Cat();tom.legs=4;/合法,不同包可以继承公有变量 tom.weight=23f;/合法,不同包可以继承受保护的变量 tom.c
9、olor=白色;/非法,不同包不可以继承友好变量 tom.f();/非法,私有方法没有被继承,不能访问 5.3.2 子子类的的继承性承性 10 第五章继承和多态性5.4is-a和has-a之间的联系is-a和has-a是表示类之间相互关系的两种方式,is-a表示了类之间的静态联系,而has-a则表示了类之间的动态联系。is-a表示的是一种属于关系,是“一般和具体”的关系;而has-a表示的则是一种包含关系,是一种“整体和部件”的关系。11 第五章继承和多态性5.5成员变量的隐藏和方法重写子类继承超类后,自动继承超类的非私有成员变量和成员方法,但如果在子类中定义了与超类同名的成员变量,且这些成员
10、变量在超类中是非私有的,则超类的这些成员变量不能被子类继承,此时称子类的成员变量隐藏了超类的成员变量。另一方面,如果在子类中定义了一个方法,这个方法的名字、返回类型和参数声明与超类的某个方法完全相同,并且超类的这个方法是非私有的,此时超类的这个方法被子类隐藏而不能被子类继承,称这时子类的这个方法覆盖(override)或重写了超类的同名方法。12 第五章继承和多态性5.5成员变量的隐藏和方法重写子类通过成员变量的隐藏和方法的重写可以把超类的状态和行为改变为自身的状态和行为。如果子类重写了超类的方法,则运行时系统调用子类重写的方法,否则调用继承的方法。在重写超类方法时应注意以下两点:1.重写超类
11、的方法时,可以保持或提升访问级别,但不允许降低方法的访问级别。2在子类中,如果要访问被子类隐藏的超类的成员变量和被重写的超类的方法,可以使用关键字super,具体请参见下一节内容。13 第五章继承和多态性5.6super关键字在Java中,super关键字可在子类中用来表示对直接超类的引用,所以当我们想在子类中使用被隐藏了的超类的成员变量和被重写的超类方法时,可以使用super关键字。具体应用时,super关键字的使用有两种形式:一是使用super调用超类的构造方法;二是使用super访问已被子类成员隐藏掉的超类成员。14 第五章继承和多态性5.6super关键字1.1.使用使用supersu
12、per调用超类的构造方法调用超类的构造方法在子类继承超类时,除了超类的私有成员不能被子类继承外,超类的构造方法也不能被子类继承。如果想在子类中使用超类的构造方法,需要使用super关键字。在子类中使用super调用超类的构造方法时,super语句必须放在子类的构造方法中,并 且作为子类构造方法的第一条语句。调用超类构造方法的格式是:super(参数列表);。2.2.使用使用supersuper访问被隐藏的超类的成员变量和被重写的超类方法访问被隐藏的超类的成员变量和被重写的超类方法在子类中使用super访问被隐藏的成员变量和被重写的超类方法的格式如下:访问被隐藏的成员变量:super.成员变量名
13、访问被隐藏的方法:super.方法名 15 第五章继承和多态性5.7继承的层次性在Java中,不允许多重继承,但却允许多层继承,即一个子类又可以是其它类的超类,从而可以形成类的多级继承层次结构。5.7.1 继承的承的层次次结构构 16 第五章继承和多态性5.7继承的层次性在Java中是这样规定构造方法的执行顺序的:首先执行超类的构造方法对继承来的成员变量赋值,然后由子类的构造方法对自已定义的成员变量赋值,也就是说超类构造方法和子类构造方法是各施其职,谁定义的变量,就由谁负责赋值。在多层继承中,子类构造方法的执行顺序是按创建时的顺序,从上往下执行。这样的执行顺序规定其实就是我们上一节中介绍的使用
14、super调用超类构造方法时super语句必须是子类构造方法中的第一条语句的原因。5.7.2 构造方法的构造方法的执行行顺序序 17 第五章继承和多态性5.8 final关键字到目前为止,我们已经知道,在声明类、成员变量和方法时,都可以使用final关键字。根据final关键字出现的位置的不同,final关键字分别具有以下三种功能:1阻止类的继承。2阻止方法的重写。3创建常量。18 第五章继承和多态性5.8 final关键字在定义类时,如果使用final关键字声明类,那么这个类将不能被子类继承。例如:final class A public void f()System.out.println
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 核心 标称 技术 图文 课件
限制150内