




免费预览已结束,剩余30页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/6/3,第8章继承和多态性,计算机学院,教育目标,理解类继承,可以在子类及其派生子类中重写父类同名方法,了解多态性的含义,了解变革对象,利用继承和多样性, 人类派生学生类、图形类派生类求面积等个任务、2020/6/3、2020/6/3、Contents、2020/6/3、回顾、类定义格式、类头部: 类名称extends父类、类体、成员变量、实例使用成员方法、结构方法和其他方法类,结构对象:对象=new结构方法、2020/6/3、Contents、2020/6/3、2、继承和派生、目的:继承和派生可以实现代码重用、简化编程的目的 final 类别名称extends父类别,语法:.,子类别:衍生类别(有父类别衍生)父类别:超类别(衍生类别继承父类别),2020/6/3, 3、类继承层次、1、单继承、2、Object、继承性成员变量的继承性、子类继承父类的成员变量作为其成员变量为2020/6/3, 8、子类和父类位于同一包中,子类和父类不在同一包中的父类的私有成员变量、公共、保护、默认、公共、保护和子类继承父类的方法是子类子类中定义的实例方法包括父类的protected、调用公共方法到子类的方法、2020/6/3,9,9,继承性成员方法的继承性! 请注意,继承的成员变数或方法的存取权限不会变更。 例1、写人类(包括姓名、性别、年龄)。 要重新创建继承人的学生班,除了上述场合,学生班还有学号场合和学习方法。 构建人类和学生类的对象,输出相关信息。 2020/6/3,10,classHuman1/人类保护字符串名称; protectedcharsex; 保护性集成; 公共主页1 (字符串名称,charsex,intage)=name; this.sex=sex; this.age=age; publicvoidthink()/思考方式System.out.println(name 思考中.); classPupil1extendsHuman1/继承人类的学生类protectedStringstuNo; /学号公共提取1 (string stuno,Stringname,charsex,intage)super(name,sex,age ); this.stuNo=stuNo; publicvoidlearn()/学习方法、2020/6/3,12,Demo,2020/6/3,受Contents,protected声明保护的成员,protected修饰类的字段和方法。 这些成员将直接或间接继承给所有派生子类。 对于封装要求,除final常量字段之外的字段必须为private。 受保护的修饰字段,2020/6/3、14、2020/6/3、类人员2 专用名称; privatecharsex; 私有intage; 公共human2(字符串名称,charsex,intage ) protectedstringgetname () 公共void think () ,示例2,示例2,2020/6/3,16,类别公共2扩展public pupil2() publicvoilearn () super.getname () public class example2 publicstaticvoidmain (string args ) human2person=new Hume person.think (); Pupil2aPupil=newPupil2(“101”、“孙红海”,男,20) aPupil.think () aPupil.learn ();在2020/6/3、Contents、2020/6/3、关键字super、1和super中调用父类的结构方法的子类必须在子类的结构方法中使用,并且关键字super才能使用不继承父类的结构方法的子类super是子类的结构方法的第一句,必须是demo2. super访问父类字段和方法的使用格式: super .父类字段名super .父类方法名(可选实体表) Eg: super.getname ();2020/6/3、19、关键字super、解决实际问题、2020/6/3、20、ManagerTest、1、成员变量隐藏子类是可从父类继承的成员变量,子类中声明的成员变量与父类中的成员变量名称相同2020/6/3、21、成员变量的隐藏、Bank、方法复盖、2、方法复盖/方法复盖可以重定义子类中父类的现有方法2020/6/3、22、classcar intcolor _ num intdoor_number; intspeed; publicvoidapush _ break () speed=0; publicvoidded_oil(),class trash _ carexterscar double amount; 公共视频文件路径() 公共视频路径路径() 速度=速度10; 、2020/6/3、(1)如果独占的语法规则子类可以继承父类的实例方法,则子类有权重写该方法。 方法重写为子类定义了方法,该方法的类型与父类的方法类型匹配,或者是父类的方法类型的子类型,该方法的名称、参数数量和参数类型与父类的方法完全相同。 方法的重写,2020/6/3,24,(2)独占目的子类可以隐藏方法的重写所继承的方法,子类可以通过方法的重写将父类的状态和行为改变为其自身的状态和行为。 多态性的表达,方法改写,2020/6/3,25,classMammal/哺乳动物类publicvoidShout()/呼叫方法System.out.println (不同种类动物的叫声不同 ); classCatextendsMammal/继承动物类的猫类publicvoidShout()/呼叫方法System.out.println (猫的叫声:喵.喵. ) classDogextendsMammal/继承动物类的犬类publicvoidShout()/呼叫方法System.out.println (狗的叫声:汪.); 例3,2020/6/3,26,继承动物类的虎类publicvoidShout()/改写调用方法System.out.println (虎的叫声:咆哮. ); public class example5 publicstaticvoidmain (string args ) mamalanimal; animal=newCat (); animal.Shout (); animal=newDog (); animal.Shout (); animal=newTiger (); animal.Shout ();2020/6/3、27、类型变量代入、8.5.1子类对象的上传对象、子类可以从父类派生,子类对象可以指派给父类声明的变量。 示例: Mammalanimal=newCat (); Mammalanimal; Catcat=newCat (); animal=cat;2020/6/3,28、(1)上层对象无法操作已添加到子类的成员字段和成员方法。 (2)上层对象可以使用父类被继承或重写的成员方法、继承或隐藏的成员变量。 (3)子类改写父类的方法时,上型对象调用该方法时必定是改写的方法(多态性)。 (4)如果子类重新定义父类的同名字段,也就是说,如果隐藏了父类的字段,则上传对象访问该字段时必须是父类本身的字段。 上类型对象的特征、子类变量无法引用父对象,父对象没有下类型对象。 父类对象不能直接指定给子类变量。 如果需要引用,则必须使用强制类型转换。 语法:(类型名称)变量示例: Pupil4pupil=(Pupil4)human; 注意:并非所有强制性转型都能成功。 例如,把马类动物强制转化为鸟类就不能转化。 无法转换时发生异常。 兄弟类的对象不能相互交换。 如果鸟类、马类、鱼类继承了动物类,就是兄弟类。 鸟既不是马,也不是鸟,也不是鱼,所以不能把鸟的对象给马和鱼类宣言的变量。 不能在同一层次的同级类变量之间相互分配值,也就是说,不能在同级类对象之间相互替换值。 多态性、类的多态性:一个是类本身方法的重载,两个是作为父类派生方法的重载,三个是通过实现接口来发挥接口作用的接口类型。 2020/6/3,32,调用的方法取决于隐式参数的实际类型,在运行时实现动态绑定。动态绑定、静态绑定:执行对象方法的步骤1 )编译器显示对象的声明类型和方法名称2 )编译器调用方法时提供的参数类型private、staticfinal或构造函数在本章总结中,类的继承和派生是一对相互关系。 类是单个继承的,最上面是根类Object。 受保护的主要角色是声明所有派生子类都可以继承的成员。关键字super与超类(父类)相关,可以调用超类构建方法、访问子类隐藏的父类字段以及调用已改写的父类方法。 子类对象赋予父类宣言的变量是上位变革的对象。 但是,子类变量不能引用父类对象或替换同级类对象。 对于多态性,主要表现在方法的改写和方法的重负荷上。 前者涉及两类,运行时多态性,又称动态多态性。 方法的重负荷在类的内部,是编译时的多态性,也称为静态多态性。 共同点是,方法名称相同。 实践8 :人的派生和动物的派生,(1)编程人的人才,创建私有姓名、性别、年龄的字段,定义获取各自私有字段的保护方法,定义共同的结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出版工作发言稿
- 2013.1.13法律逻辑学试题及答案(经典)
- 林场护林员培训
- 夏季高温防暑培训
- 二零二五版建筑工程设计施工一体化转让合同
- 2025版节能建筑瓷砖供货与绿色生活推广合同
- 2025版离婚后共同财产分割子女抚养及财产分割协议
- 2025版文化艺术交流活动组织服务合同模板
- 二零二五版科技研发资源共享服务合同
- 二零二五年度电商跨境电商支付与清算培训合同
- 五年级上册小数乘除口算练习400题及答案
- 一滴血检测仪培训教程(完全版)课件
- 2024年中信信托有限责任公司招聘笔试参考题库含答案解析
- 2023汽车维修合同制度
- 45种硅钢片磁化容量及损耗参数
- 病原微生物实验活动风险评估表
- 拟写议论文分论点(最终版)
- 安全防范系统验收规则
- 康复科提高药品发放及时性PDCA
- 线性代数教案(正式打印版)
- 小学六年级数学计算题100道(含答案)
评论
0/150
提交评论