第4讲 面向对象―继承ppt课件.ppt

第4讲 面向对象―继承ppt课件.ppt

ID:59207420

大小:636.00 KB

页数:58页

时间:2020-09-26

第4讲  面向对象―继承ppt课件.ppt_第1页
第4讲  面向对象―继承ppt课件.ppt_第2页
第4讲  面向对象―继承ppt课件.ppt_第3页
第4讲  面向对象―继承ppt课件.ppt_第4页
第4讲  面向对象―继承ppt课件.ppt_第5页
资源描述:

《第4讲 面向对象―继承ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2004-10主讲:chen第4章面向对象编程—继承与多态2008-9继承是由已有类创建新类的机制,是面向对象程序设计基础,是面向对象程序设计方法的一个重要手段通过继承可以更有效地组织程序结构,利用已有的类来完成更复杂的新类的设计与开发,充分实现代码重用Java只支持单一继承,即一个类只能有一个超类。多态是指一个程序中,同名的不同方法共存的情况。多态提高了类的抽象性和封装性,多态有两种表现形式:同一个类内的方法的重载和不同类间的子类对超类方法的覆盖。继承和多态是面向对象编程的两个核心特点本章介绍继承与多态的实

2、现技术。本章学习说明本章目标1.理解掌握面向对象的两个核心特性继承与多态的 概念与应用2.掌握子类的定义,理解掌握子类构造方法的定义与调用原则3.掌握重载与覆盖的概念与应用以及二者的区别4.理解掌握最终类与最终方法、抽象类与抽象方法的概念与应用§4.1类的继承当一个类可以自动拥有另一个类的成员变量和成员方法时,称这两个类之间存在继承关系被继承的类称为超类或父类,继承了超类成员的类称为子类,子类是由超类派生的类子类通过派生可以继承已有超类的成员,是实现类代码重用和数据共享的重要机制若一个类有一个以上的超类则称为

3、多重继承。一个类只有一个超类为单重继承Java只支持单重继承,即每个类只能有一个超类。Java的单重继承既体现了面向对象编程的思想,又降低了面向对象编程的难度。使Java面向对象编程变得更加简洁§4.1.1子类的声明在Java类的声明中,使用关键字extends实现继承,由已有的超类派生子类,格式如下:[修饰符]class<子类名>extends<超类名> {子类类体;}其中,extends是关键字子类名是新定义的类,是合法的Java标识符超类名是已有的类。例如classEagleextendsBird{ …

4、… }其中,Eagle是新定义的子类Bird是Eagle的超类。§4.1.1子类的声明说明:在Java中每个类都有超类,如果一个类在定义时没有显式声明超类,系统默认其超类是java.lang包中的Object类,Object是系统预定义的一个类,是一切类的根类。§4.1.2Object类如果一个类在定义时没有声明超类,它的超类默认 为Object类;Object类是其他所有类的超类,是类层次的根;所有的类都拥有Object类预定义的一系列方法下面介绍Object类中常用的方法。Object类中常用的方法pub

5、licfinalClassgetClass()publicbooleanequals(Objectobj)publicStringtoString()获得一个Class类的对象,该对象中含有当前对象的信息判断两个对象是否相等,有些教材认为该方法是用来判断两个对象是否含有相同的信息,这种说法不够确切以字符串对象的形式返回对当前对象的描述:类名称+对象所在内存地址。在实际编程时常常在自定义类中覆盖该方法,以返回更适合需求的信息publicinthashCode()获得当前对象的哈希码,系统运行时每个对象都将拥有一

6、个唯一的哈希码标识该对象关于继承的说明:子类继承超类成员的同时,子类还可以 增加新的成员变量和成员函数,扩充或 改造超类的成员,这是子类不同于超类 的关键所在继承体现了子类对超类的扩展,子类是 更加具体更加细化的类子类派生过程主要体现在三个方面:继承超类的成员变量和成员方法;增加新的成员变量和成员方法;覆盖(修改)超类的成员方法, 或隐藏(重载)超类的成员变量类的继承规则子类继承的成员变量子类可继承超类的所有public、protected成员变量;子类可继承同一个包中超类的默认成员变量;如果子类成员变量名与

7、超类相同,则称子类覆盖超类成员,隐藏了超类的成员;子类不能继承超类的private成员变量,如果希望超类的成员变量不被子类访问,那么就声明为私有的,充分体现了面向对象编程的封装原则。【例4.1】子类继承超类的成员变量源程序Person1.java中定义类Person与Student,程序如下publicclassPerson{Stringname;//姓名intage;//年龄}classStudent{Stringname;//姓名intage;//年龄Stringdept;//系别}这样的定义有大量的重复

8、,利 用继承原则,从新定义这两个类publicclassPerson{Stringname;//姓名intage;//年龄}classStudentextendsPerson{Stringdept;//系别}利用继承原则:子类从超类继承了 非私有成员变量name、age,同时 增加了新的成员变量dept【例4.2】子类继承超类的成员方法源程序Person.java中定义类Person与Student

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

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

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