- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 继承与多态 目录 3.1 类的继承 3.2 对象的上转型对象 3.3 多态性 3.4 abstract 类和abstract方法 3.5 super关键字 3.1 类的继承 继承是一种由已有的类创建新类的机制。 利用继承,我们可以先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。 继承——相关的几个概念 基类(base class) 也称超类(super class)或父类(parent class),是被直接或间接继承的类 派生类(derived-class) 也称子类 (sub class),是继承自其他类而得到的类 继承所有祖先的属性和行为,也可以增加变量和方法,也可以覆盖(override)继承的方法 子类对象与父类对象存在“is a”或者“is a kind of” 的关系 例如:公司中,有职员(Employee)及管理人员(Magager)两类人员,管理人员是职员,但具有不同于一般职员的属性 职员对象(Employee)可能有的属性信息包括: 员工号(employeeNumber) 姓名(name) 地址(address) 电话号码(phoneNumber) 管理人员(Manager)除具有普通员工的属性外,还可能具有下面的属性 职责(responsibilities) 所管理的职员(listOfEmployees) 继承——Employee与Manager 继承——直接/间接继承举例 Java继承性的特点: 通过继承,新类拥有已有类的所有功能 Java只支持类的单继承,即:每个子类只能有一个直接父类 继承机制可以提高程序的抽象程度,提高代码的可重用性 1、子类 在类的声明中,通过使用关键字extends来创建一个类的子类,格式如下: class 子类名 extends 父类名 {… } 例如: class Student extends People {… } 注意: 如果一个类的声明中没有使用extends关键字,则系统默认其为Object类的子类 Object是java.lang包中的类,不需使用import显式引入 补充:Object类 Object类 Java中所有类的直接或间接父类,处在类层次最高点 包含了所有Java类的公共属性,其构造方法是Object() Object类定义了所有对象必须具有的状态和行为,其中主要的方法如下: public final Class getClass() 获取当前对象所属的类信息,返回Class对象 public String toString() 返回当前对象本身的有关信息,按字符串对象返回 public boolean equals(Object obj) 比较两个对象是否是同一对象,是则返回true Object——getClass方法 返回一个Class对象,用来代表对象隶属的类 通过Class 对象,可以查询Class对象的各种信息:比如该类的名字,基类,有哪些成员等。 void PrintClassName(Object obj) { System.out.println(The Objects class is + obj.getClass().getName()); } 相等和同一的概念 两个对象具有相同的类型及相同的成员值,则称二者相等(equal) 如果两个引用变量指向的是同一个对象,则称这两个变量同一(identical) 如果两个对象同一,则肯定相等;但如果两个对象相等,则不一定同一 比较运算符“==” 判断的是这两个对象是否同一 例:使用“==”判断同一对象 例子:人物 class 人物 { double 身高; double 体重; } 例:修改代码后执行 例子:人物 class 人物 { double 身高; double 体重; } Object——equals方法 由于Object是所有类的父类,因此其所有子类都继承了equals()方法 Object类中的 equals() 方法的定义如下: public boolean equals(Object x) { return this == x; } 可见,equals也是判断两个对象是否同一 equals方法——举例 例子:人物 class 人物 { double 身高; double 体重; } equlas方法——重写问题 问题:为什么String类的equals方法可以判断“相等”? String类中已经重写了Object类的equals方法,可以判别两个字符串
您可能关注的文档
- 第三章 阿奇霉素片说明书20101001(希舒美).pdf
- 《操作系统》第4篇 存储管理1.ppt
- 第三章 北大青鸟Oracle教程集Chapter 10.ppt
- HtmlParser提取网页信息的设计和实现.pdf
- 第5篇投资规模.ppt
- citespace介绍、使用与案例应用 - 中科院.ppt
- 第四章 标识符和表达式.ppt
- 第3讲 中断控制器.pdf
- SPI与其接口介绍.docx
- 铁路隧道初期支护结构随机有限元与可靠度分析.pdf
- 岸基供电系统 第4部分:工频电源.pdf
- 人教版八下英语Unit 5 What were you doing when the rainstorm came_测试卷.docx
- 热带作物品种区域试验技术规程 木薯.pdf
- 草原防火阻隔带建设技术规程.pdf
- 渔用气胀救生筏技术要求和试验方法-.pdf
- 浙江省杭州市2024-2025学年八年级下学期期中考试英语试卷(含答案).docx
- 重庆市渝北区六校联盟2024-2025学年九年级下学期期中教学大练兵语文试卷.docx
- 食品安全-花椒籽油 (2).pdf
- 2025年海博思创分析报告:储能集成“小巨人”,国内外业务进展可期.pdf
- 地理标志产品 宽城板栗.pdf
文档评论(0)