




已阅读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年杭州普工招聘测试题及答案
- 数码冲印师技能测试题库及答案
- 党务知识考试题库及答案
- 四川省遂宁四校联考2026届中考三模英语试题含答案
- 2026届山东省昌乐县中考语文考前最后一卷含解析
- 宿州市泗县事业单位笔试考试及答案(公基)
- 2025年四川南充职业技术学院引进招聘考试笔试试卷附答案
- 【艾青诗选】批注
- 测量误差及数据处理课件
- 测量工具使用规范培训教材课件
- 五年级英语时态练习题
- 中压交联电缆电缆正、负和零序计算
- 优衣库商业模式分析
- 调度系统介绍课件
- 华联学院日语能力考试N5试题二及参考答案
- 地铁车站主体结构缺陷处理施工技术交底二级
- 车辆一级维护记录表
评论
0/150
提交评论