第5章课后答案

一、问答题

1.不可以。

2.是。

3.不继承。

4.声明与父类同名的成员变量。

5.子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型,重写的方法的名字、参数个数、参数的类型和父类的方法完全相同。重写方法的目的是隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。

6.不可以。

7.Abstract类。

8.上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。上转型对象可以访问子类继承或隐藏的成员变量,可以调用子类继承的方法或子类重写的实例方法。

9.通过重写方法。

10.面向抽象编程目的是为了应对用户需求的变化,核心是让类中每种可能的变化对应地交给抽象类的一个子类类去负责,从而让该类的设计者不去关心具体实现。

二、选择题

1.C。2.D。3.CD。4.D。5.B。6.B。7.D。8.B。9.A。

三、阅读程序

1.【代码1】:15.0。【代码2】:8.0。

2.【代码1】:11。【代码2】:11。

3.【代码1】:98.0。【代码2】:12。代码3】:98.0。【代码4】:9。

4.【代码1】:120。【代码2】:120。代码3】:-100。

四、编程题

Animal.java

public abstract class Animal {

    publicabstract void cry();

    publicabstract String getAnimalName();

}

Simulator.java

public class Simulator {

   public voidplaySound(Animal animal) {

      System.out.print("现在播放"+animal.getAnimalName()+"类的声音:");

      animal.cry();

   }

}

Dog.java

public class Dog extends Animal {

   public voidcry() {

     System.out.println("汪汪...汪汪");

   } 

   public StringgetAnimalName() {

      return"狗";

   }

}

Cat.java

public class Cat extends Animal {

   public voidcry() {

     System.out.println("喵喵...喵喵");

   } 

   public StringgetAnimalName() {

      return"猫";

   }

}

Application.java

public class Example5_13 {

   public static void main(String args[]) {

      Simulator simulator = new Simulator();

      simulator.playSound(new Dog());

      simulator.playSound(new Cat());

   }

}

猜你喜欢

转载自blog.csdn.net/qq_41045071/article/details/80958307
今日推荐