Java程序设计第6章-继承与多态课件.pptx

上传人(卖家):三亚风情 文档编号:2921404 上传时间:2022-06-11 格式:PPTX 页数:28 大小:357.25KB
下载 相关 举报
Java程序设计第6章-继承与多态课件.pptx_第1页
第1页 / 共28页
Java程序设计第6章-继承与多态课件.pptx_第2页
第2页 / 共28页
Java程序设计第6章-继承与多态课件.pptx_第3页
第3页 / 共28页
Java程序设计第6章-继承与多态课件.pptx_第4页
第4页 / 共28页
Java程序设计第6章-继承与多态课件.pptx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、6 6继 承 与 多 态Java程序设计第章C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字6.1.1 子类定义 子类定义实际上就是定义类的过程,只不过是在父类的基础上定义。子类定义形式: Java语言只支持单重继承。除了Object类之外每个类都有一个父类,它是所有类的直接父类或间接父类。 如果在定义一个类时没有说明该继承自哪一个类,则该类的父类是Object。class 子类名 extends 父类名/子类类体 /0101OPTION0202OPTION0303OPT

2、ION0404OPTION6.1.2 子类的可访问性父类的私有成员可以被子类继承,但只能通过继承自父类的并且子类可以访问的方法间接访问。父类与子类不在同一个包中,则父类中的保护成员可以被子类中的方法直接访问,但在子类类体外不可以通过子类对象访问。类中的公有成员可以被子类中的方法直接访问,在子类类体外可以通过子类对象访问。父类与子类在同一个包中,则父类中的保护成员可以被子类中的方法直接访问,在子类类体外可以通过子类对象访问。0101OPTION0202OPTION6.1.2 子类的可访问性父类与子类在同一个包中,则父类中的友好成员可以被子类中的方法直接访问,在子类类体外可以通过子类对象访问。 父

3、类与子类不在同一个包中,则父类中的友好成员不可以被子类中的方法直接访问,在子类类体外不可以通过子类对象访问,只能通过继承自父类的并且子类可以访问的方法间接访问。【例6.1】设计一个圆类,该类能够表示圆的位置和大小,能够计算圆的面积和周长,能够对圆进行平移。定义圆类的对象并进行相应的操作,输出操作后的结果。Example6_01.java6.1.3 instanceof运算符 instanceof运算符用于判断一个对象是否是某一个类的实例对象,或者是否是某一个类的子类的实例对象。 instanceof的方法形式: 对象名 instanceof 类名【例6.2】instanceof的用法。Exam

4、ple6_02.javaC目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字6.2.1 域的隐藏 子类根据需要可以将继承自父类的方法重新定义以适合子类对象的需要,这种情况称为方法的重写。【例6.3】域隐藏举例。Example6_03.java 子类中定义的域的名字与继承自父类的域的名字相同,则在子类中隐藏了继承自父类的域,子类中的方法不能访问父类中的被隐藏的域。6.2.2 方法的重写 当子类继承父类的方法后,子类根据自身的需要可以对继承的方法重新定义,以便使子类对象表现出与父

5、类不同的行为。这种重新定义的过程称方法的重写(Override)。【例6.4】某公司给雇员发工资。雇员中有经理、技术人员和一般雇员,该公司给雇员定的工资标准是:一般雇员工资领固定工资,经理工资在一般雇员工资基础上加本月津贴,技术人员的工资在一般雇员工资基础上加技术津贴,技术津贴为工作小时数单位津贴/小时。Example6_04.java6.2.3 super关键字 super表示当前类的直接父类。 在有些情况下,还想访问被子类隐藏的域或被重写的方法,这种情况下则可以通过关键字super实现相应的访问。 如果想明确地访问继承自父类中的域,可以通过下面形式访问: super.域名 表示访问当前类直

6、接父类中的域。如果想明确地调用继承自父类中的方法,可以通过下面形式访问: super.方法名(实际参数)super还可以用于调用直接父类的构造方法: super(实际参数);6.2.3 super关键字调用父类的构造方法有如下的规则:l 在构造子类对象时,父类的构造方法一定会被调用;l 如果子类的构造方法使用了super调用父类的构造方法,则按给定的参数调用父类中相应的构造方法;l 如果在子类的构造方法中没有使用super调用父类的构造方法,则父类中的没有参数的构造方法会被自动调用。l 如果子类没有使用super调用父类构造方法并且父类中也没有定义没有参数的构造方法,则编译不能通过。6.2.3

7、 super关键字【例6.5】平面上有若干条线段,已知每条线段两个端点的坐标。设计线段类并创建线段类的对象表示线段。要求用继承的方法实现。Example6_05.java 如果父类和子类中都定义了实例初始化器,则构造子类对象时,调用顺序为“父类的实例初始化器父类的构造方法子类的实例初始化器子类的构造方法”。C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字6.3 对象的赋值兼容规则 在有继承关系的类中,可以用父类对象表示子类的对象,称为赋值兼容规则。例如,类B是类A的子类,

8、则下面的赋值是正确的:A a=new B(); 当用父类对象表示子类对象时,父类对象称为子类对象的上转型对象。 当一个父类对象表示的是子类对象时,还可以将该父类对象强制转换成子类对象。如:B b=(B)a;将上转型对象转换为子类对象称为下转型对象。6.3 对象的赋值兼容规则当用一个父类对象表示子类对象后,父类对象:可以访问子类继承自父类的域或被子类隐藏的域;可以调用子类继承自父类的方法或被子类重写的方法;不能访问子类相对于父类新增加的域或方法。 所以,通过父类访问的域或方法一定是继承自父类的域或方法、或者是隐藏继承自父类的域、或者是重写继承自父类的方法。 使用赋值兼容规则主要是为了实现多态性。

9、C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字6.4.1 final修饰类关键字final可以修饰类,可以修饰方法,还可以修饰域。final class 类名/final修饰的类称为最终类。修饰的形式: 最终类不能派生子类。定义最终类的目的是不希望父类中的域被子类隐藏、方法被子类重写,可以对类起到保护作用。典型的最终类就是String类。6.4.2 final修饰方法访问限定词 static final 方法类型 方法名(参数)/final修饰的方法称为最终方法。修饰的

10、形式: 最终方法可以被子类继承,但不能被子类重写,从而对父类的方法起到保护作用。6.4.3 常量final修饰的域称为最终域,又称为常量。修饰的形式:访问限定词 static final 数据类型 域名=初值;C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字6.5.1 多态概念 同一类对象表现出的不同行为称为多态。 多态的实现一定得在有继承关系的对象中。每一个子类的对象的行为都与其它子类对象或父类对象的行为不同,这种行为上的不同称为多态性。 程序设计语言本身必须支持多态性

11、,编程时才能够实现多态性。6.5.2 多态的实现经过下面几步可以实现多态性:通过父类对象名调用被子类重写的方法。【例6.6】有多种交通工具,利用多态性表现出每种交通工具的正确运行状态。 Example6_06.java定义一个基类,在此基类基础上再派生出若干个子类;0101OPTION0202OPTION0303OPTION0404OPTION子类要重写父类中的方法,使子类对象能够表现出子类的行为;用父类对象名表示子类对象(赋值兼容规则);C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abs

12、tract关键字6.6.1 abstract修饰类关键字abstract修饰的类称为抽象类。抽象类定义的形式:关键字abstract可以修饰类,也可以修饰类中的方法。abstract class 类名 /抽象类不能生成对象实例。6.6.2 abstract修饰方法关键字abstract修饰的方法称为抽象方法。抽象方法定义的形式:访问限定词 abstract 数据类型 方法名(参数表列); 抽象方法只有方法的头部,没有方法体。抽象方法一定不能用关键字final修饰。 抽象类中可以有非抽象(实例)方法,也可以有抽象方法。如果一个类中有抽象方法,该类必须定义成抽象类。【例6.7】有若干个圆和矩形,已

13、知每个圆的半径和矩形的长、宽,计算这些圆和矩形的面积和周长。Example6_07.javaC目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字小结Summary通过继承,可以实现代码重用,提高编程效率,提高程序运行的稳定性。继承是实现多态性的前提。继承过程中,子类可以定义与父类同名的域,则在子类中隐藏了父类的域;子类还可以将继承自父类的方法重写。在子类对象中,如果想访问父类中被隐藏的域或调用父类中被重写的方法,可以用关键字super。父类对象可以表示子类对象,称为类型兼容规则。多态性指的是同一类对象具有的不同行为,具有指的是有共同父类的子类对象的不同行为。如果父类没有必要创建实例,则可以声明为抽象类。如果不希望一个类有子类,则可以将该类声明为最终类。谢谢观赏Java程序设计

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Java程序设计第6章-继承与多态课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|