前問の Animal クラスに以下の仮想メソッドを追加しなさい。
public virtual void Speak()
{
Console.WriteLine( "......" );
}
Dog クラス、Cat クラスに Speak メソッドをオーバーライドするメソッドを追加しなさい。
Dog では“ワンワン”、Cat では“ニャー”という文字列を表示します。
次のプログラムを作成しなさい。
- Cat クラスと Dog クラスのインスタンスを作成する。
- それぞれの ShowProfile を実行する。
- それぞれの Speak を実行する。
class Animal
{
public string Name { get; private set; }
public int Age { get; private set; }
public Animal(string name, int age)
{
Name = name;
Age = age;
}
public void ShowProfile()
{
Console.WriteLine(Name + "," + Age + "歳");
}
public virtual void Speak()
{
Console.WriteLine("......");
}
}
class Cat : Animal
{
public Cat(string name, int age)
: base(name, age)
{
}
public void Sleep()
{
Console.WriteLine("スースー");
}
public override void Speak()
{
Console.WriteLine("ニャー");
}
}
class Dog : Animal
{
public Dog(string name, int age)
: base(name, age)
{
}
public void Run()
{
Console.WriteLine("トコトコ");
}
public override void Speak()
{
Console.WriteLine("ワンワン");
}
}
public class Exercise
{
static void Main(string[] args)
{
Cat MyCat = new Cat("たま", 3);
Dog MyDog = new Dog("ぽち", 4);
MyCat.ShowProfile();
MyDog.ShowProfile();
MyCat.Speak();
MyDog.Speak();
}
}