




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4 3继承和多态 4 3 1父类和子类 继承和继承的实现 定义 类继承是指一个类可以继承其他类所有的非私有成员变量和成员方法 被继承的类称为父类 继承后产生的类称为子类 格式 修饰符 class类名extends父类名 类体 子类的直接父类是该子类直接继承的类 而间接父类则是两级或两级以上的父类 子类只能有一个直接父亲 称单继承 JAVA中只允许单继承 即仅允许每个类有一个直接父类 不允许有多个直接父类 但一个类可以有多个子类 子类除了继承父类非私有的属性和方法外 还可以有自己的属性和方法 子类可以继承父类的构造函数 构造函数的继承遵循以下的原则 子类无条件地继承父类的不含参数的构造函数 若子类没有定义自己的构造函数 它将继承父类无参数的构造函数作为自己的构造函数 若子类定义了自己的构造函数 它先执行继承自父类的无参数构造函数 再执行自己的构造函数 对父类含参数的构造函数 子类可以通过在定义自己的构造函数中使用super关键字来调用它 但这个调用语句必须是子类构造函数的第一个可执行语句 附 构造函数的继承 例 要求定义三个类 Person类 Student类 测试使用Student类的应用程序类TestStudent java 其中Person类是Student类的直接父类 定义了姓名 性别 年龄 在Student类中 定义了数学 语文课成绩 并求平均成绩 Person javapublicclassPerson protectedStringname protectedcharsex protectedintage publicPerson publicPerson Stringstr charch inti name str sex ch age i publicStringtoString return 姓名 name 性别 sex 年龄 age Student javapublicclassStudentextendsPerson protectedintchinese math publicStudent publicStudent Stringstr charch intx inty intz name str sex ch age x chinese y math z publicintaverage return chinese math 2 子类要调用父类的构造函数 可用super 来实现 这里可替换为 super str ch x 子类构造函数的形参表 只能使用其父类构造函数中用过的形参表 或者是对它的扩充 TestStudent javapublicclassTestStudent publicstaticvoidmain Stringargs Students1 newStudent System out println s1 s1 toString 成绩 s1 average Students2 newStudent Tom m 25 88 97 System out println s2 s2 toString 成绩 s2 average 注 调用子类不含参数的构造函数时 先调用父类不含参数的构造函数 程序运行后 结果为多少 思考 4 3 2子类对父类的变量隐藏和方法覆盖 继承性可以使子类继承父类所有非私有的变量和方法 当一个父类成员不适合该子类时 子类可以重新定义它 变量的隐藏 子类重新定义从父类继承来的同名变量 这时子类若引用父类的同名变量 要用super关键字做前缀 super 变量名 方法的覆盖 子类重新定义从父类继承来的同名方法 即 方法头与父类一样 方法体不一样 这也是Java多态性的表现之一 覆盖方法必须和被覆盖方法具有相同的方法名称 参数列表和返回值类型 覆盖方法时 不能使用比父类中被覆盖的方法更严格的访问权限 若子类中调用被覆盖的父类中的同名的方法 可以通过super关键字做前缀 super 方法名 Automobile javapublicclassAutomobile publicdoublespeed Automobile speed 200 0 publicdoubleget speed returnspeed Car javapublicclassCarextendsAutomobile publicdoublespeed Car speed 0 0 publicdoubleadd class speed speed 1 returnspeed publicdoubleadd fa class super speed super speed 1 returnspeed TestCar javapublicclassTestCar publicstaticvoidmain Stringargs carc1 newcar System out println speedofcar c1 add class speedofAutomobile c1 get speed System out println speedofcar c1 add fa class speedofAutomobile c1 get speed 程序运行后 结果为多少 思考 4 3 3抽象类和最终类 一 抽象类 Java中可以定义一些不含方法体的方法 它的方法体的实现交给该类的子类根据自己的情况去实现 这样的方法就是抽象方法 包含抽象方法的类就叫抽象类 一个抽象类中可以有多个抽象方法 abstract返回值类型抽象方法 参数列表 抽象方法的写法 抽象类必须用abstract关键字来修饰 抽象方法也必须用abstract来修饰 abstract不能用来修饰变量 含有抽象方法的类肯定是抽象类 抽象类中的某个方法不一定是抽象的 抽象类不能被实例化 也就是不能用new关键字去产生对象 如果一个类继承自某个抽象父类 而没有具体实现抽象父类中的抽象方法 编写方法体 则必须定义为抽象类 用abstract修饰 抽象类的子类必须覆盖所有的抽象方法后才能被实例化 否则该子类还是个抽象类 例编写一个程序 首先定义一个描述平面图形的抽象类Figure 然后派生出圆类Circle和矩形类Rectangle 由于平面图形都有面积 其父类中可定义求面积的方法area 但子类求面积的方法area 是不同的 因此父类Figure中将area 定义为抽象方法area 就可以求出子类所描述的形状的面积 Figure javapublicabstractclassFigure protecteddoublex Figure Figure doublex1 定义边长 x x1 abstractpublicdoublearea publicStringtoString return x x Circle javapublicclassCircleextendsFigure 圆类 publicCircle doublex1 super x x1 publicdoublearea 具体实现父类中的抽象方法 求圆面积 return3 14 x x publicStringtoString return 圆 t super toString tarea area Rectangle javapublicclassRectangleextendsFigure 长方形类 protecteddoubley publicRectangle publicRectangle doublea doubleb super a y b publicdoublearea 具体实现父类中的抽象方法 求长方形面积 returnx y publicStringtoString return 长方形 t super toString ty y tarea area TestFigure javapublicc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安徽安全员考试模拟考试题及答案
- 2025年健身项目经理专业素质评定考试试题及答案解析
- 2025年健身房管理师职业水平评定试题及答案解析
- 2025年建筑玻璃幕墙工程师职业资格考试试题及答案解析
- 2025年安全生产安全检查标准试题及答案
- 2025年摄影师招聘面试技巧与模拟题答案
- 2025年暑期消防安全知识测试题库
- 机电知识培训目的课件
- 2025年工地安全员高处作业规范及答案
- 2025年收费站安全生产法规模拟题
- 2025至2030全球及中国实验室PH电极行业发展趋势分析与未来投资战略咨询研究报告
- 相控阵超声检测技术及应用
- 第四单元整本书阅读《红岩》课件 2025-2026学年统编版语文八年级上册
- 特色小吃街商业运营与管理合作协议
- 金提炼过程中的贵金属综合回收利用考核试卷
- 三级安全教育试题及答案
- 房屋市政工程生产安全重大事故隐患排查表
- 2025建筑工程设计合同(示范文本)GF
- T/SHPTA 082-2024光伏组件封装用共挤EPE胶膜
- 钢化玻璃制品项目可行性研究报告立项申请报告范文
- 《财税基础(AI+慕课版)》全套教学课件
评论
0/150
提交评论