java程序设计第五章答案 java第五章课后答案_子类

java答案第五章

Java 语言程序设计 第五章课后习题答案 1.什么是接口?接口起什么作用?接口与抽象类有何区别? 答:Java 中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特 征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具 有不同的行为(功能)。 作用:接口是面向对象的一个重要机制,使用接口可以实现多态继承;接口中的所有方法 都是抽象的,这些抽象方法由实现这一接口的不同类型来具体;接口还可以用来实现不同 类之间的常量共享。 与抽象类不同的是:接口允许在看起来不相干的类之间定义共同行为。 2.试编程证明接口中的属性都隐含为 static 及 final,所有的方法都为 public。 //定义接口Shape2D interface Shape2D{ double Pi=3.14; double area(); } //Circle类继承接口Shape2D public class Circle implements Shape2D{ double radius; public Circle(double r){radius=r;} public double area(){return Pi*radius*radius;} } //A类(测试接口中隐含final的area()方法) public class A extends Shape2D{ public double area(); } //test5_2 public class test5_2{ public static void main(String args[]){ Circle c=new Circle(10); System.out.println(“Pi=3.14圆的面积:“+c.area()); SetPi b=new SetPi(3.00); System.out.println(“改变Pi=3.00圆的面积:“+c.area()); } } 运行结果:3.在什么情况下,可以对父类对象的引用进行强制类型转换,使其转化成子类对象的引用? 答:一个对象被塑型为父类或接口后,可以再一次被塑型回到它原来所属的类,即转化成 原类对象的引用。 4.声明一个接口,此接口至少具有一个方法;在一个方法中声明内部类实现此接口,并返 回此接口的引用。 //A类接口 public interface A{ void (); } //B类 public class B{ public A (){ return new A(){ public void (){ System.out.println(“B类声明实现A接口类并返回接口的应 用—— you!“); } };/*注意这里有分号“;”*/ } } //test5_4 public class test5_4 { public static void main(String[] args){ new B().().(); } } 运行结果:5.声明一个具有内部类的类,此内部类只有一个非默认的构造方法;声明另外一个具有内 部类的类,此内部类继承第一个内部类。 //A 类 class A{ class ClassOfA{ public ClassOfA(){ } } } //B 类 public class B{ class ClassOfB extends A.ClassOfA{ public ClassOfB(A b){ b.super(); } } } 6.声明一个具有两个方法的类,在第一个方法中调用第二个方法。声明此类的一个子类, 并在子类中重写第二个方法。生成一个子类的对象,并将其塑型为基类,调用第一个方法, 解释会发生什么? //A 类 public class A { public String Way1(){return “A 的方法 1 和“+Way2();} public String Way2(){return “A 的方法 2“;} } //B 类 public class B extends A{ public String Way2(){ return “B 的方法 2“; } }// test5_6 public class test5_6 { public static void main(String args[]){ A a=new B(); System.out.println(a.Way1()); } } 7.什么是多态?如何实现多态? 答:多态性是指不同类型的对象可以响应相同的消息。利用向上塑性技术,一个父类的应 引用变量可以指向不同的子类对象;而利用动态绑定技术,可以再运行时根据父类引用变 量所指对象的世纪类型执行相应的子类方法,从而实现多态性。 8.在第 4 章习题 10 的基础上,声明测试类完成对多态性的测试。 (1)在主方法中声明 Student 类的数组(含五个元素) (2)生成五个对象存入数组:其中三个 Student 类的对象、一个 StudentXW 类的对象、一 个 StudentBZ 类的对象。 (3)将方法 testScore()发送给数组的每一个元素,输出结果,并分析具体执行的是哪 一个类中的方法。 //Student 类 public class Student{ String id; String name; float scoreOfenglish; float scoreOfmath; float scoreOfcomputer; float scoreOfsum; //构造方法 public Student(){ } public Student(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer){ this.id=aid; this.name=aname; this.scoreOfenglish=ascoreOfenglish;this.scoreOfmath=ascoreOfmath; this.scoreOfcomputer=ascoreOfcomputer; //this.scoreOfsum=ascoreOfenglish+ascoreOfmath+ascoreOfcomputer; this.scoreOfsum=sum(); } //sum 方法 public float sum(){ return(this.scoreOfenglish+this.scoreOfmath+this.scoreOfcomputer); } //testScore 测评成绩/平均分 public float testScore(){ return(this.scoreOfsum/3); } //6 个 get 方法 public String getid(){ return(id); } public String getname(){ return(name); } public fl