设计一个动物发生模拟器,用于模拟不同动物的叫声。比如狮吼、虎啸、狗旺旺、猫喵喵……。
定义抽象类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 【】{
【】
【】
}
输入样例:
输出样例:
猫的叫声:喵喵
狗的叫声:汪汪
山羊的叫声:咩咩
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
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);
}
public static void Speak(Animal animal)
{
Console.WriteLine("{0}的叫声:{1}",animal.GetAnimalClass(),animal.Shout());
}
}
public abstract class Animal
{
public abstract string GetAnimalClass();
public abstract string Shout();
}
class Cat : Animal
{
public override string GetAnimalClass()
{
return "猫";
}
public override string Shout()
{
return "喵喵";
}
}
class Dog : Animal
{
public override string GetAnimalClass()
{
return "狗";
}
public override string Shout()
{
return "汪汪";
}
}
class Goat : Animal
{
public override string GetAnimalClass()
{
return "山羊";
}
public override string Shout()
{
return "咩咩";
}
}
}