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

上传人:txadgkn****dgknqu... 文档编号:241707087 上传时间:2024-07-17 格式:PPTX 页数:28 大小:275.49KB
返回 下载 相关 举报
Java程序设计第6章-继承与多态课件_第1页
第1页 / 共28页
Java程序设计第6章-继承与多态课件_第2页
第2页 / 共28页
Java程序设计第6章-继承与多态课件_第3页
第3页 / 共28页
点击查看更多>>
资源描述
6 6继 承 与 多 态Java程序设计第章6继承与多态Java程序设计第章1C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字C目录ONTENTS6.2 域的隐藏和方法的重写6.3 26.1.1子类定义子类定义实际上就是定义类的过程,只不过是在父类的基础上定义。子类定义形式:Java语言只支持单重继承。除了Object类之外每个类都有一个父类,它是所有类的直接父类或间接父类。如果在定义一个类时没有说明该继承自哪一个类,则该类的父类是Object。class子类名extends父类名/子类类体/6.1.1 子类定义 子类定义实际上就是定义类30101OPTION0202OPTION0303OPTION0404OPTION6.1.2子类的可访问性父类的私有成员可以被子类继承,但只能通过继承自父类的并且子类可以访问的方法间接访问。父类与子类不在同一个包中,则父类中的保护成员可以被子类中的方法直接访问,但在子类类体外不可以通过子类对象访问。类中的公有成员可以被子类中的方法直接访问,在子类类体外可以通过子类对象访问。父类与子类在同一个包中,则父类中的保护成员可以被子类中的方法直接访问,在子类类体外可以通过子类对象访问。01OPTION02OPTION03OPTION04OPTI40101OPTION0202OPTION6.1.2子类的可访问性父类与子类在同一个包中,则父类中的友好成员可以被子类中的方法直接访问,在子类类体外可以通过子类对象访问。父类与子类不在同一个包中,则父类中的友好成员不可以被子类中的方法直接访问,在子类类体外不可以通过子类对象访问,只能通过继承自父类的并且子类可以访问的方法间接访问。【例6.1】设计一个圆类,该类能够表示圆的位置和大小,能够计算圆的面积和周长,能够对圆进行平移。定义圆类的对象并进行相应的操作,输出操作后的结果。Example6_01.java01OPTION02OPTION6.1.2 子类的可访问性56.1.3instanceof运算符instanceof运算符用于判断一个对象是否是某一个类的实例对象,或者是否是某一个类的子类的实例对象。instanceof的方法形式:对象名instanceof类名【例6.2】instanceof的用法。Example6_02.java6.1.3 instanceof运算符 ins6C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字C目录ONTENTS6.2 域的隐藏和方法的重写6.3 76.2.1域的隐藏子类根据需要可以将继承自父类的方法重新定义以适合子类对象的需要,这种情况称为方法的重写。【例6.3】域隐藏举例。Example6_03.java子类中定义的域的名字与继承自父类的域的名字相同,则在子类中隐藏了继承自父类的域,子类中的方法不能访问父类中的被隐藏的域。6.2.1 域的隐藏 子类根据需要可以将继承自86.2.2方法的重写当子类继承父类的方法后,子类根据自身的需要可以对继承的方法重新定义,以便使子类对象表现出与父类不同的行为。这种重新定义的过程称方法的重写(Override)。【例6.4】某公司给雇员发工资。雇员中有经理、技术人员和一般雇员,该公司给雇员定的工资标准是:一般雇员工资领固定工资,经理工资在一般雇员工资基础上加本月津贴,技术人员的工资在一般雇员工资基础上加技术津贴,技术津贴为工作小时数单位津贴/小时。Example6_04.java6.2.2 方法的重写 当子类继承父类的方法后96.2.3super关键字super表示当前类的直接父类。在有些情况下,还想访问被子类隐藏的域或被重写的方法,这种情况下则可以通过关键字super实现相应的访问。如果想明确地访问继承自父类中的域,可以通过下面形式访问:super.域名表示访问当前类直接父类中的域。如果想明确地调用继承自父类中的方法,可以通过下面形式访问:super.方法名(实际参数)super还可以用于调用直接父类的构造方法:super(实际参数);6.2.3 super关键字 super表示106.2.3super关键字调用父类的构造方法有如下的规则:l在构造子类对象时,父类的构造方法一定会被调用;l如果子类的构造方法使用了super调用父类的构造方法,则按给定的参数调用父类中相应的构造方法;l如果在子类的构造方法中没有使用super调用父类的构造方法,则父类中的没有参数的构造方法会被自动调用。l如果子类没有使用super调用父类构造方法并且父类中也没有定义没有参数的构造方法,则编译不能通过。6.2.3 super关键字调用父类的构造方法有如下的规116.2.3super关键字【例6.5】平面上有若干条线段,已知每条线段两个端点的坐标。设计线段类并创建线段类的对象表示线段。要求用继承的方法实现。Example6_05.java如果父类和子类中都定义了实例初始化器,则构造子类对象时,调用顺序为“父类的实例初始化器父类的构造方法子类的实例初始化器子类的构造方法”。6.2.3 super关键字【例6.5】平面上有若干条线12C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字C目录ONTENTS6.2 域的隐藏和方法的重写6.3 136.3对象的赋值兼容规则在有继承关系的类中,可以用父类对象表示子类的对象,称为赋值兼容规则。例如,类B是类A的子类,则下面的赋值是正确的:Aa=newB();当用父类对象表示子类对象时,父类对象称为子类对象的上转型对象。当一个父类对象表示的是子类对象时,还可以将该父类对象强制转换成子类对象。如:Bb=(B)a;将上转型对象转换为子类对象称为下转型对象。6.3 对象的赋值兼容规则 在有继承关系的类中146.3对象的赋值兼容规则当用一个父类对象表示子类对象后,父类对象:可以访问子类继承自父类的域或被子类隐藏的域;可以调用子类继承自父类的方法或被子类重写的方法;不能访问子类相对于父类新增加的域或方法。所以,通过父类访问的域或方法一定是继承自父类的域或方法、或者是隐藏继承自父类的域、或者是重写继承自父类的方法。使用赋值兼容规则主要是为了实现多态性。6.3 对象的赋值兼容规则当用一个父类对象表示子类对象后,15C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字C目录ONTENTS6.2 域的隐藏和方法的重写6.3 166.4.1final修饰类关键字final可以修饰类,可以修饰方法,还可以修饰域。finalclass类名/final修饰的类称为最终类。修饰的形式:最终类不能派生子类。定义最终类的目的是不希望父类中的域被子类隐藏、方法被子类重写,可以对类起到保护作用。典型的最终类就是String类。6.4.1 final修饰类关键字final可以修饰类,176.4.2final修饰方法访问限定词staticfinal方法类型方法名(参数)/final修饰的方法称为最终方法。修饰的形式:最终方法可以被子类继承,但不能被子类重写,从而对父类的方法起到保护作用。6.4.2 final修饰方法访问限定词 stati186.4.3常量final修饰的域称为最终域,又称为常量。修饰的形式:访问限定词staticfinal数据类型域名=初值;6.4.3 常量final修饰的域称为最终域,又称为常量。19C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字C目录ONTENTS6.2 域的隐藏和方法的重写6.3 206.5.1多态概念同一类对象表现出的不同行为称为多态。多态的实现一定得在有继承关系的对象中。每一个子类的对象的行为都与其它子类对象或父类对象的行为不同,这种行为上的不同称为多态性。程序设计语言本身必须支持多态性,编程时才能够实现多态性。6.5.1 多态概念 同一类对象表现出的不同行216.5.2多态的实现经过下面几步可以实现多态性:通过父类对象名调用被子类重写的方法。【例6.6】有多种交通工具,利用多态性表现出每种交通工具的正确运行状态。Example6_06.java定义一个基类,在此基类基础上再派生出若干个子类;0101OPTION0202OPTION0303OPTION0404OPTION子类要重写父类中的方法,使子类对象能够表现出子类的行为;用父类对象名表示子类对象(赋值兼容规则);6.5.2 多态的实现经过下面几步可以实现多态性:通过父类22C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字C目录ONTENTS6.2 域的隐藏和方法的重写6.3 236.6.1abstract修饰类关键字abstract修饰的类称为抽象类。抽象类定义的形式:关键字abstract可以修饰类,也可以修饰类中的方法。abstractclass类名/抽象类不能生成对象实例。6.6.1 abstract修饰类关键字abstract246.6.2abstract修饰方法关键字abstract修饰的方法称为抽象方法。抽象方法定义的形式:访问限定词abstract数据类型方法名(参数表列);抽象方法只有方法的头部,没有方法体。抽象方法一定不能用关键字final修饰。抽象类中可以有非抽象(实例)方法,也可以有抽象方法。如果一个类中有抽象方法,该类必须定义成抽象类。【例6.7】有若干个圆和矩形,已知每个圆的半径和矩形的长、宽,计算这些圆和矩形的面积和周长。Example6_07.java6.6.2 abstract修饰方法关键字abstract25C目录ONTENTS6.2 域的隐藏和方法的重写6.3 对象的赋值兼容规则6.7 小结6.1 子类及其对象6.4 final关键字6.5 多态6.6 abstract关键字C目录ONTENTS6.2 域的隐藏和方法的重写6.3 26小结Summary通过继承,可以实现代码重用,提高编程效率,提高程序运行的稳定性。继承是实现多态性的前提。继承过程中,子类可以定义与父类同名的域,则在子类中隐藏了父类的域;子类还可以将继承自父类的方法重写。在子类对象中,如果想访问父类中被隐藏的域或调用父类中被重写的方法,可以用关键字super。父类对象可以表示子类对象,称为类型兼容规则。多态性指的是同一类对象具有的不同行为,具有指的是有共同父类的子类对象的不同行为。如果父类没有必要创建实例,则可以声明为抽象类。如果不希望一个类有子类,则可以将该类声明为最终类。小结Summary通过继承,可以实现代码重用,提高编程效率,27谢谢观赏Java程序设计谢谢观赏Java程序设计28
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!