任务九 子承父业(继承与多态的使用).ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录 目 录 目 录 任务九 子承父业(继承和多态的使用) 内容提要 9.1 跟我做:汽车的分类关系 任务情景 汽车是一般的交通工具,具有车类型、品牌、引擎数量、外观颜色等属性,能够发动、加速、刹车、停车等功能。汽车又可分为公共汽车、出租车、卡车等。公共汽车具有自己的第几路编号、最大载客数量属性,能够报站。出租车具有所属公司、最大载客数量属性,能够给乘客打发票。卡车具有最大载重量属性,能够卸货。请编写Vehicle汽车类、Bus公共汽车类。Taxi类和Truck类待学完本任务后自行完成。 运行结果 9.2 实现方案 问题分析 回忆任务六中定义类的三个步骤,先定义类名,再编写类的属性,最后编写类的方法。本任务采用这三个步骤,编写好代码后,我们很快就会发现,Vehicle汽车类和Bus公共汽车类出现了许多相同的语句代码。在属性方面,都包含了车类型、品牌、引擎数量、外观颜色重复的信息定义,在功能上都有发动、加速、刹车、停车等重复的行为定义。汽车、公共汽车的成员变量和成员方法对照请见图9-2。 现在,我们换个思路考虑。汽车是一般性的概念,它包含的成员变量和成员方法,在公共汽车、出租车、卡车中也具有,因为公共汽车是一种汽车,出租车、卡车也是一种汽车,只不过公共汽车、出租车、卡车是一种更具体的汽车,除了汽车的公共特性外,还有自己的特有性质。 经过分析,采取如下措施,在定义类时,将公共汽车类、出租车类、卡车类中相同的属性和方法抽象出来,集中放在汽车类中,形成一种共享的机制,公共汽车类、出租车类、卡车类中只放自己特有的成员变量和成员方法,减少重复代码。这样的汽车类称为父类,公共汽车类、出租车类、卡车类称为子类。子类继承父类的非私有成员变量和成员方法。 9.2 实现方案 解决步骤 1.打开Eclipse,在study项目中创建包com.task09,再确定类名Vehicle,得到类的框架。 package com.task09; public class Vehicle{ } 2.然后,进行类的属性描述,只输入抽象出来的共有的成员变量 String type; String brand; int engineNum; String color; 3.接着,定义类的构造方法: public Vehicle() public Vehicle(String type,String brand, int engineNum, String color) 4.再定义抽象出来的共有的方法: //发动、加速、刹车、停车 public void start() public void accelerate() public void brake() public void stop() 9.2 实现方案 5.定义Bus类。Bus类作为更具体的子类,只定义自己特有的性质。父类Vehicle类已有的成员变量和成员方法不再定义。 public class Bus extends Vehicle{ //加上extends关键字和父类名Vehicle //公共汽车具有自己的最大载客数量、第几路编号属性 int maxLoad; //特有的成员变量 String busNo; /** * 构造方法 */ public Bus() …… public Bus(int maxLoad,String busNo) …… //报站 public void announceBusStop() //特有的成员方法 ……} 6.定义VehicleTest测试类,运行程序。对Vehicle类、Bus类的继承关系进行测试,Bus类能否访问父类的成员变量,能否调用父类的成员方法。 Bus bus=new Bus(子类公共汽车,女神, 2, 白色,50,9路); bus.start(); //调用父类的成员方法 bus.announceBusStop(); //公共汽车报站 9.3 代码分析 程序代码 9.3 代码分析 应用扩展 Bus类继承了Vehicle类后,在发动、加速、刹车、停车功能上加上自己的特性,就要重写这四个方法。重写形成了多态。Bus类升级新增方法如下: //发动、加速、刹车、停车 public void start(){ System.out.println(type+busNo+brand+engineNum+引擎+color+汽车发动); } public void accelerate(){ System.out.println(type+busNo+brand+engineNum+引擎+color+汽车加速);

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档