




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章习题解答1类的继承的主要好处是什么?Java中支持类的多继承形式吗?继承是一种由已有的类创建新类的机制。利用继承,我们可以先创建一个拥有共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类自动拥有一般类的属性和行为,并根据需要可以增加新的属性和行为,或者改变父类的行为。类的继承的主要好处是代码复用。Java不支持类的多继承形式。2解释一下方法重载和方法覆盖的概念,并对两者加以对比。如果子类中定义方法所用的名称、返回类型和参数表和父类中方法所使用的完全一样,但具体实现不同,则称子类方法覆盖了父类中的方法。在同一类中,如果方法名称相同,但参数表不同,则称为方法重载。3编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的父类。import java.util.*;class Person private String name; private int id; public void input() Scanner sc=new Scanner(System.in); name=sc.nextLine(); id=sc.nextInt(); public void display() System.out.println( class Student extends Person private int classNo; private int score; public void input() super.input(); Scanner sc=new Scanner(System.in); classNo=sc.nextInt(); score=sc.nextInt(); public void display() super.display(); System.out.println(classNo=+classNo+ score=+score); public static void main(String args) Student s=new Student(); s.input(); s.display(); 4创建Animal(动物):Mouse,Dog等的一个继承分级结构。在父类中,提供适用于所有Animal的方法,并在子类中覆盖它们,从而根据不同类型的Animal采取不同的行动。abstract class Animal public abstract void speak();class Mouse extends Animal public void speak() System.out.println(miao.); class Dog extends Animal public void speak() System.out.println(wang.); public class Example public static void main(String args) Mouse m=new Mouse(); m.speak(); Dog d=new Dog(); d.speak(); 5. 解释super关键字的不同用法。调用超类的构造方法。引用超类的成员变量及方法。6阅读以下程序,给出运行结果。class SuperClassint x;SuperClass()x=3;System.out.println(in SuperClass : x= +x);void doSomething() System.out.println(in SuperClass.doSomething();class SubClass extends SuperClassint x;SubClass()super();x=5;System.out.println(in SubClass :x=+x);void doSomething()super.doSomething();System.out.println(in SubClass.doSomething();System.out.println(super.x=+super.x+ sub.x=+x);public class Inheritancepublic static void main(String args)SubClass subC=new SubClass();subC.doSomething();运行结果:in SuperClass : x=3in SubClass :x=5in SuperClass.doSomething()in SubClass.doSomething()super.x=3 sub.x=57介绍抽象类和抽象方法的概念,一个抽象类的所有方法是否都必须为抽象方法?有时在类库开发中,要创建一个体现某些基本行为的类,并为该类声明方法,但无法在该类中实现全部具体行为,取而代之,在子类中具体实现该方法。面向对象程序设计中,利用抽象类(abstract class),可以声明仅定义了部分实现的类,让该类的子类提供某些或全部方法的具体实现。抽象类通常代表一个抽象概念,它提供一个继承的出发点。一个抽象类的所有方法并非都必须为抽象方法。 8通过查看Java API文档,在Java类库中寻找abstract类和abstract方法的一些例子。 例如:java.io包中,Writer类即为一个抽象类。9 定义一个Shape抽象类,在此基础上派生出Rectangle和Circle类,二者都有GetArea()方法计算对象的面积,GetPerim()方法计算对象的周长。使用Rectangle类派生一个新类Square,并编写测试程序加以测试。abstract class Shape abstract double GetArea(); abstract double GetPerim();class Rectangle extends Shape double w,h; Rectangle(double w,double h) this.w=w; this.h=h; double GetArea() return w*h; double GetPerim() return 2*(w+h); class Circle extends Shape double r; Circle(double r) this.r=r; double GetArea() return 2*3.1415*r*r; double GetPerim() return 2*3.1415*r; class Test public static void main(String args) Circle c=new Circle(3.5); Rectangle r=new Rectangle(2.5,6); System.out.println(圆形的周长=+c.GetPerim()+ 面积=+c.GetArea(); 10. 在Java类库中寻找final类和final方法的一些例子。 java.lang.String类即为final类。 11. 解释接口的概念,Java中接口可以有多继承形式吗?Java中,一个接口(interface)仅仅描述方法的特征,而不给出方法的具体实现;而类不仅给出方法的特征,还给出方法的具体实现。因此,接口把方法的特征和实现分离开,可以将接口看作是代表某一个角色,而实现这个接口的类便是扮演这个角色的演员,一个角色可以由不同的演员来演,而不同的演员之间除了扮演一个共同的角色外,并不要求有任何其它的共同之处。 Java中接口可以有多继承形式。12. 阅读以下程序,给出运行结果。interface ShowMessage void showTradeMark();class TV implements ShowMessage public void showTradeMark() System.out.println(我是电视机); class PC implements ShowMessage public void showTradeMark() System.out.println(我是电脑); public class Example public static void main(String args) ShowMessage sm; sm=new TV(); sm.showTradeMark(); sm=new PC(); sm.showTradeMark(); 运行结果如下:我是电视机我是电脑13编写一个实现Comparable接口类型的类BankAccount。根据递增的存款额排列银行中的账号,并提供一个测试程序,对银行账号数组列表进行排序。/BankAccount.javapackage exercise4_13;class BankAccount implements Comparableprivate String bankId;private float deposit;BankAccount(String Id,float deposit)bankId = Id;this.deposit = deposit;public String toString()return 账号: + bankId + t存款: + deposit;public int compareTo(BankAccount other)if(deposit other.deposit) return 1;return 0;/Test.javapackage exercise4_13;import java.util.Arrays;public class Test /* * param args */public static void main(String args) BankAccount b = new BankAccount3;b0 = new BankAccount(001,30);b1 = new BankAccount(002,50);b2 = new BankAccount(003,40);Arrays.sort(b);for(int i = 0;i b.length;i +)System.out.println(bi.toString();System.exit(0);14为某单位编写一个程序,用来计算每一种交通工具运行1000公里所需的时间。现有两种工具:Car007 和Plane,需要编写三个类:ComputeTime.java,Plane.java,Car007.java和接口Vehicle.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。各种交通工具对象的速度由各个交通工具类中相应的返回运行速度的方法来获取。/Vehicle.javapackage exercise4_14;interface Vehicle int getVelocity();/Plane.javapackage exercise4_14;class Plane extends ComputeTime implements Vehicleprivate int velocity;Plane(int velocity)this.velocity = velocity;public int getVelocity()return velocity;float Time()return (float)super.getDistance()/velocity;/ComputeTime.javapackage exercise4_14;abstract class ComputeTime private int distance = 1000;int getDistance()return distance;abstract float Time();/Car007.javapackage exercise4_14;class Car007 extends ComputeTime implements Vehicleprivate int velocity;Car007(int velocity)this.velocity = velocity;public int getVelocity()return velocity;float Time()return (float)super.getDistance()/velocity;/Test.javapackage exercise4_14;public class Test public static void main(String args) Plane p = new Plane(20);Car007 c = new Car007(50);System.out.println(速度为+p.getVelocity()+公里每小时的飞机运行1000公里需+p.Time()+小时);Syst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 燃气工程专业中级职称理论考试题库
- 赛马数学拓展题目及答案
- 汝南数学中招题目及答案
- 2024-2025学年新疆巴音郭楞蒙古自治州高二上学期期末考试语文试题(解析版)
- 2024-2025学年山西省部分地市高一上学期期末考试语文试题(解析版)
- 公路目录模板
- 护士工作简历模板范本
- 文明自律演讲稿
- 委托代理进口协议
- 自贡统计年鉴-2009-人口主要统计指标解释
- 国家开放大学本科《当代中国政治制度》期末纸质考试总题库2025春期版
- 滴滴网约车出行品牌-品牌视觉识别手册【出行打车】【VI设计】
- 课题申报参考:中华体育精神铸牢新疆青年学生中华民族共同体意识的时代价值和实践路径研究
- 临床生化检验讲课
- 生物制造产业园项目实施规划与进度安排
- 蒸饭培训课件
- 高校物业管理服务实施方案
- 工程造价咨询服务投标方案(专家团队版-)
- 消化内镜护理常规
- 招标代理入围服务方案
- 【MOOC】电子技术实习-北京科技大学 中国大学慕课MOOC答案
评论
0/150
提交评论