




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计 第9章继承和多态 学习目标 理解类继承的概念以及父类和子类的关系理解super关键字掌握方法覆盖理解多态性 动态绑定和对象的强制类型转换理解数据字段和静态方法的隐藏掌握修饰符 protected final了解ArrayList类 Employee和Manager publicclassEmployee publicStringname publicdoublesalary publicDatebirthDate publicStringgetDetails publicclassManager publicStringname publicdoublesalary publicDatebirthDate publicStringdepartment publicStringgetDetails 继承 publicclassEmployee publicStringname publicdoublesalary publicDatebirthDate publicStringgetDetails publicclassManagerextendsEmployee publicStringdepartment 父类和子类 语法classClassNameextendsSuperclass classbody 如果classC1extendsC2 则称C1为子类 subclass C2为父类 superclass 子类继承了父类中可访问的数据和方法 子类也可添加新的数据和方法 子类不继承父类的构造函数 一个类只能有一个直接父类 例几何对象类 编写程序 父类GeometricObject 两个子类Circle和Rectangle Example v1 Circle java v1 Rectangle java v1 TestCircleRectangle java super关键字 调用父类的构造函数super parametersopt 调用父类的的构造函数 必须是子类构造函数的第一条语句 如果子类中没有显式地调用父类的构造函数 那么将自动调用父类不带参数的构造函数 父类的构造函数在子类构造函数之前执行 调用父类的成员super datasuper method parameters Example ConstructorDemo java 方法覆盖 如果子类重新定义了从父类中继承的实例方法 称为方法覆盖 methodoverride 仅当方法是可访问的实例方法时 才能被覆盖 即私有方法不能被覆盖 静态方法不能被覆盖 如果静态方法在子类中重新定义 那么父类方法将被隐藏 一旦父类中的方法被覆盖 则不能从子类外部访问被覆盖的方法 在子类中可以使用super引用被覆盖的方法 Example v2 Circle java v2 Rectangle java v2 TestCircleRectangle javaOverrideTest java 覆盖与重载 publicclassTest publicstaticvoidmain String args Aa newA a p 10 classB publicvoidp inti classAextendsB publicvoidp inti System out println i publicclassTest publicstaticvoidmain String args Aa newA a p 10 classB publicvoidp inti classAextendsB publicvoidp doublei System out println i Object类 java lang Object类是所有类的父类 如果一个类在声明时没有指定父类 那么这个类的父类是Object类 equals方法 用于测试两个对象是否相等 Object类的默认实现是比较两个对象是否引用同一个对象 toString方法 返回代表这个对象的字符串 Object类的默认实现是返回由类名 和hashCode组成 多态性 动态绑定 当调用实例方法时 由Java虚拟机动态地决定所调用的方法 称为动态绑定 dynamicbinding 或为多态 polymorphism 假定对象o是类C1的实例 C1是C2的子类 C2是C3的子类 Cn 1是Cn的子类 也就是说 Cn是最一般的类 C1是最特殊的类 在Java中 Cn是Object类 如果调用o的方法p Java虚拟机按照C1 C2 Cn的顺序依次查找方法p的实现 一旦找到一个实现 将停止查找 并执行找到的第一个实现 通用编程 父类变量可以引用子类对象 针对父类对象设计的任何代码都可以应用于子类对象 多态性允许方法使用更通用的类作为参数类型 如果方法参数是父类 那么这个参数可以接受任何子类对象作为实参 当调用这对象的方法时 将动态绑定方法的实现 Example poly PolymorphismDemo java 类型转换 类型转换 typecasting 可以将一个对象的类型转换成继承结构中的另一种类型 从子类到父类的转换是合法的 称为隐式转换 m newStudent Objecto newStudent m o 从父类到子类必须显式转换 被转换的变量所指向的对象的类型必须是转换类或它的子类 Objecto newStudent Students Student o o所指向的对象必须是Student或Student子类的对象 instanceof操作符 可以用instanceof操作符判断一个对象是否是一个类的实例 表达式返回boolean值 语法referenceVariableinstanceofTypeName 例强制类型转换 编写程序 创建两个几何对象 圆和矩形 调用displayObject来显示结果 如果对象是圆 显示半径和面积如果对象是矩形 显示面积 Example v2 TestPolymorphismCasting java 隐藏数据字段和静态方法 如果子类中声明的数据字段和静态方法与父类中的名称相同 那么父类中的将被隐藏 hide 通过super关键字访问被隐藏的数据字段和静态方法 通过父类型的变量访问被隐藏的数据字段和静态方法 成员访问实例方法根据变量所引用的对象的实际类型进行访问 数据字段和静态方法根据变量的声明类型进行访问 Example HideDemo java Ax newB protected修饰符 protected修饰符用于修饰数据和方法 可以被同一个包中的任何类或不同包中的子类访问 C1 publicintxprotectedintyintzprivateintu C2中的代码可以访问x y zC3中的代码可以访问c1对象中的x y zC4中的代码可以访问x yC5中的代码可以访问c1对象中的x 类成员的访问控制符类的访问控制符public 类可以被任何包中的类访问无 package 只有同一个包中的类可以访问 访问控制符 final修饰符 final数据 常量 数据初始化后不能再修改 final方法 最终方法 子类不能覆盖
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中煤陕西能源化工集团有限公司招聘(2人)笔试模拟试题及答案解析
- 大众汽车营销策划方案详细版
- 2025年城市交通行业城市交通智能化发展研究报告
- 2025年旅游行业旅游体验与全球化发展研究报告
- 中小学音乐教学改革方案
- 小学拼音词语书写教学方案
- 新型教育理念课堂实践方案
- 企业IT系统信息化实施方案模板
- 邮政快递服务流程优化方案
- 家庭心理咨询预案及实施方案研究
- DL∕T 5371-2017 水电水利工程土建施工安全技术规程
- TD/T 1057-2020 国土调查数据库标准(正式版)
- 健康教育狂犬病知识讲座
- 应急救援的现场医疗急救
- 第一章 马克思主义自然观
- 2023-2024学年八年级物理上学期第一次月考考试版【测试范围:第一章、第二章】(人教版)
- 重大隐患判定标准解读课件
- j11pro固件爵聆数播说明书
- 常见“肩痛”诊断、鉴别诊断与治疗
- 电容式电压互感器试验指导方案
- GB/T 23353-2009梨干技术规格和试验方法
评论
0/150
提交评论