1、设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:
编写抽象类Animal
Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称。
编写模拟器类Simulator
该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal可以调用Animal的子类重写的cry()方法播放具体动物的声音、调用子类重写的getAnimalName()方法显示动物种类的名称。
编写Animal类的子类:Dog,Cat类
图5.18是Simulator、Animal、Dog、Cat的UML图。
abstract class Animal {
abstract void cry();
abstract String getAnimalName();
}
class Dog extends Animal {
void cry() {
System.out.println("汪汪!");
}
String getAnimalName() {
return "狗";
}
}
class Cat extends Animal {
void cry() {
System.out.println("喵喵!");
}
String getAnimalName() {
return "猫";
}
}
class Simulator {
void playSound(Animal animal) {
String name = animal.getAnimalName();
System.out.println(name);
animal.cry();
}
}
public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
2、编写名为IParent的接口,其中声明add(String s1,String s2)和minus(String s1,String s2)方法,返回值均为int型;编写Child类继承IParent接口,并实现add和minus方法,要求当主方法中执行如下代码时:
interface IParent {
int add(String s1, String s2);
int minus(String s1, String s2);
}
class Child implements IParent {
public int add(String s1, String s2) {
int i = Integer.parseInt(s1);
int j = Integer.parseInt(s2);
return i + j;
}
public int minus(String s1, String s2) {
int i = Integer.parseInt(s1);
int j = Integer.parseInt(s2);
return i - j;
}
}
public class exc2 {
public static void main(String[] args) {
IParent c=new Child();
System.out.println(c.add("12", "34"));
System.out.println(c.minus("123", "12"));
}
}
仅作留档。