7-3 动物发声模拟器(多态)
分数 20
全屏浏览题目
切换布局
作者 刘凤良
单位 天津仁爱学院
设计一个动物发生模拟器,用于模拟不同动物的叫声。比如狮吼、虎啸、狗旺旺、猫喵喵……。
定义抽象类Animal,包含两个抽象方法:获取动物类别getAnimalClass()、动物叫shout();
然后基于抽象类Animal定义狗类Dog、猫类Cat和山羊Goat,用getAnimalClass()方法返回不同的动物类别(比如猫,狗,山羊),用shout()方法分别输出不同的叫声(比如喵喵、汪汪、咩咩)。
最后编写AnimalShoutTest类测试,输出:
猫的叫声:喵喵
狗的叫声:汪汪
山羊的叫声:咩咩
其中,在AnimalShoutTestMain类中,用speak(Animal animal){}方法输出动物animal的叫声,在main()方法中调用speak()方法,分别输出猫、狗和山羊对象的叫声。
请在下面的【】处添加代码。
//动物发生模拟器. 请在下面的【】处添加代码。 public class AnimalShoutTest2 { public static void main(String[] args) { Cat cat = new Cat(); Dog dog = new Dog(); Goat goat = new Goat(); speak(cat); speak(dog); speak(goat); } //定义静态方法speak() 【】 } //定义抽象类Animal 【】class Animal{ 【】 } //基于Animal类,定义猫类Cat,并重写两个抽象方法 class Cat 【】{ 【】 【】 } //基于Animal类,定义狗类Dog,并重写两个抽象方法 class Dog 【】{ 【】 【】 } //基于Animal类,定义山羊类Goat,并重写两个抽象方法 class Goat 【】{ 【】 【】 }
输入样例:
输出样例:
猫的叫声:喵喵
狗的叫声:汪汪
山羊的叫声:咩咩
/**
* ClassName:AnimalShoutTest2
* Description:
*
* @Author:
* @Create 2023/10/11 19:03
* @Version 1.0
*/
//动物发生模拟器. 请在下面的【】处添加代码。
// 设计一个动物发生模拟器,用于模拟不同动物的叫声。比如狮吼、虎啸、狗旺旺、猫喵喵……。
// 定义抽象类Animal,包含两个抽象方法:获取动物类别getAnimalClass()、动物叫shout();
// 然后基于抽象类Animal定义狗类Dog、猫类Cat和山羊Goat,用getAnimalClass()方法返回不同的动物类别(比如猫,狗,山羊),用shout()方法分别输出不同的叫声(比如喵喵、汪汪、咩咩)。
// 最后编写AnimalShoutTest类测试,输出:
// 猫的叫声:喵喵
// 狗的叫声:汪汪
// 山羊的叫声:咩咩
//
// 其中,在AnimalShoutTestMain类中,用speak(Animal animal){}方法输出动物animal的叫声,在main()方法中调用speak()方法,分别输出猫、狗和山羊对象的叫声。
//
// 请在下面的【】处添加代码。
public class Main{
public static void main(String[] args) {
Cat cat = new Cat();
Dog dog = new Dog();
Goat goat = new Goat();
speak(cat);
speak(dog);
speak(goat);
}
//定义静态方法speak()
static void speak (Animal animal){
System.out.print(animal.getAnimaClass()+"的叫声:" );
animal.shout();
}
}
//定义抽象类Animal
// 定义抽象类Animal,包含两个抽象方法:获取动物类别getAnimalClass()、动物叫shout();
abstract class Animal{
String annimal ;
public String getAnimaClass(){
return annimal;
}
public void shout(){
}
public void Animal(){
}
}
//基于Animal类,定义猫类Cat,并重写两个抽象方法
// 然后基于抽象类Animal定义狗类Dog、猫类Cat和山羊Goat,用getAnimalClass()方法返回不同的动物类别(比如猫,狗,山羊),用shout()方法分别输出不同的叫声(比如喵喵、汪汪、咩咩)。
class Cat extends Animal{
public String getAnimaClass(){
annimal = "猫";
return annimal;
}
public void shout(){
System.out.println("喵喵");
}
}
//基于Animal类,定义狗类Dog,并重写两个抽象方法
class Dog extends Animal{
public String getAnimaClass(){
annimal = "狗";
return annimal;
}
public void shout(){
System.out.println("汪汪");
}
}
//基于Animal类,定义山羊类Goat,并重写两个抽象方法
class Goat extends Animal{
public String getAnimaClass(){
annimal = "山羊";
return annimal;
}
public void shout(){
System.out.print("咩咩");
}
}