




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计类的继承 教师 张立涓 本单元教学内容 理解继承的基本概念使用extends实现继承类成员的继承规则子类对父类的扩展 1 讨论 图所表示的关系2 轮船 客轮的关系示例 共性与个性 3 列举其它的类似关系 父类 或基类 超类 子类 或派生类 几个实例 考察以下例子 飞机票 属性 单价 始发站 终点站 航班号 座位号 仓位等级 航空公司 方法 价格查询等 火车票 属性 单价 始发站 终点站 车次 座位号 座位类型 方法 价格查询等 船票 属性 单价 始发站 终点站 轮船号 座位号 座位类型 方法 价格查询等 思考 观察P89 91关于飞机票 火车票 客车票 船票类的声明代码冗余度如何 各个类之间有多少重复的代码 类之间的继承关系图示 程序演示 父类的声明 父类TicketclassTicket protecteddoubleprice 票单价protectedStringstartStation 始发站protectedStringendStation 终点站protectedStringseatNum 座位号publicdoublegetPrice returnprice publicStringgetInfo return 票价 price 始发站 startStation 终点站 endStation 我们归纳出所有类的共性 作为父类 Ticket类 的成员变量和成员方法 程序演示 类的继承 Ticket类的子类描述飞机票classPlaneTicketextendsTicket protectedStringflightNum 航班号protectedStringseatType 舱位等级protectedbooleanroundTrip 是否为往返机票protectedStringairlineCompany 航空公司 继承的语法 继承的语法使用关键字extends格式 class子类名extends父类名 如 classManagerextendsEmpoyee 练习 继承父类Ticket 完成其他子类 火车票 客车票 船票 的声明 成员属性与成员方法的继承规则 类继承具有传递性 即子类继承父类的所有非私有成员 也继承父类的父类直至祖先的所有的非私有成员 子类对父类的扩展 子类除了继承父类的成员变量和成员方法外 还可以添加新的成员变量和成员方法 用于描述自己的特征和行为 例如 类PlaneTicket除了继承父类Ticket的成员变量和成员方法外 还添加了自己的成员变量flightNum 航班号 seatType 舱位等级 airlineCompany 航空公司 等 单继承 Java只支持单继承 也即一个类只能有一个父类 分析与讨论 衬衣与裙子类具有许多相同的属性 能否将它们看成一种继承关系 深入理解继承概念 面向对象中的继承是一个基于分类学的概念 继承描述的是一种 isa 的关系 子类是父类在同一个分类分支上的一个更为特殊的类 只有当类之间存在的是一种能够被描述为 子类isa父类 的时候 我们才使用继承 因此 在面向对象程序设计中 Skirt与Shirt类不能表示为一种继承关系 添加抽象 服装 衬衣 裙子 练习 1 创建一个具有确定位置矩形类PlainRect 该类继承于类Rect 其确定位置用矩形的左上角坐标来标识 为该类添加 子类扩展两个属性 矩形左上角坐标startX和startY 练习 2 编写上题PlainRect类的测试程序 1 创建一个左上角坐标为 10 10 长为20 宽为10的矩形对象 2 计算并打印输出矩形的面积 思考 子类可以继承父类的所有非私有成员 那么构造器方法是否可以继承 子类扩展的成员属性又该如何初始化呢 子类的构造器方法 父类构造器方法publicTicket doubleprice StringstartStation StringendStation StringseatNum this price price this startStation startStation this endStation endStation this seatNum seatNum 子类构造器方法publicPlaneTicket doubleprice StringstartStation StringendStation StringflightNum StringseatNum StringseatType booleanroundTrip StringairlineCompany super price startStation endStation seatNum 调用父类Ticket构造器方法this flightNum flightNum 练习 添加其他子类的构造器方法思考 若父类重新声明了构造器方法 子类是否还可以使用默认的构造器方法 练习 为父类Rect类声明构造器方法 初始化矩形的长和宽为子类PlainRect声明构造器方法 初始化长 宽和左上角坐标创建一个矩形对象 长为20 宽为10 左上角坐标 1 2 思考 子类是否可以重新声明从父类继承过来的方法 方法的覆盖 父类Ticket的getInfo 方法publicStringgetInfo return n票价 price n始发站 startStation n终点站 endStation n座位号 seatNum 子类VehicleTicket覆盖父类getInfo 方法publicStringgetInfo returnsuper getInfo n车次 vehicleNum 方法的覆盖 归纳一下 方法覆盖 override 的规则如下 方法名与被覆盖的方法名必须一样 参数列表必须与被覆盖的方法一样 返回类型必须与被覆盖的方法一样 访问控制级别不能比被覆盖的方法高 思考
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浇筑工安全教育培训课件
- 2025年钽电解电容器项目规划申请报告
- 洪山区安全生产培训课件
- 2025年工程塑料及合金项目申请报告
- 洁柔安全培训课件
- 2025贵州黄平县中医医院医共体单位纸房乡卫生院招聘2名护理人员模拟试卷及答案详解(夺冠)
- 2025年微生物多糖项目立项申请报告模板
- 法院司法安全培训课件
- 法老之蛇课件
- 2025年河北沧州任丘园区产业发展集团有限公司招聘工作人员10名模拟试卷及答案详解(考点梳理)
- 文学类文本阅读2026届高三9月名校模考试分类汇编五
- 2025年9月20日云南省直机关遴选公务员笔试真题及答案解析
- 快手磁力聚星星选达人认证考试试卷答案
- 一元二次方程-相似三角形-锐角三角函数复习
- 冰皮月饼的制作方法课件
- 在职党员到社区报到登记表“双报到”登记表
- 降低10炉脱硝系统液氨消耗量0
- 地下储藏室产权使用权转让协议
- 高考专题复习:小说专题训练人称的交替使用
- 大数据在高速公路收费稽查打逃方面的应用
- GB/T 9722-2006化学试剂气相色谱法通则
评论
0/150
提交评论