【C#】ポリモーフィズムのサンプル(動物)
C#でポリモーフィズムのサンプルを作るには、まず、基底クラスを定義します。その後、その基底クラスを継承した派生クラスを定義します。最後に、基底クラスのインスタンスを使用して、派生クラスのインスタンスを呼び出します。
例えば、動物を表すAnimalクラスを基底クラスとし、それを継承したCatクラス、Dogクラスを作成し、それらを使用して、動物の鳴き声を出力するプログラムを作成することができます
abstract class Animal
{
public abstract void MakeSound();
}
class Cat : Animal
{
public override void MakeSound()
{
Console.WriteLine("Meow");
}
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Woof");
}
}
この例では、基底クラスAnimalに、MakeSoundメソッドを宣言しています。これは、派生クラスがそれぞれ異なる鳴き声を出すために、オーバーライドする必要があることを示しています。 そして、Catクラス、DogクラスはAnimalsクラスを継承し、それぞれに異なる鳴き声を出すメソッドを実装しています。
これらクラスを使用するには、Animalクラスのインスタンスを作成し、それに対して、必要な操作を行うことで、使用することができます
Animal animal = new Cat();
animal.MakeSound(); // Meow
animal = new Dog();
animal.MakeSound(); // Woof
上記のプログラムでは、基底クラスのAnimalインスタンスを作成し、それに対して、CatクラスのインスタンスとDogクラスのインスタンスを代入しています。 そして、それぞれのインスタンスに対して、MakeSoundメソッドを呼び出すことで、それぞれの異なる鳴き声を出力することができます。
このように、基底クラスを定義し、それを継承した派生クラスを使用することで、同じインターフェースを持つ複数のクラスを扱うことができるようになり、プログラムをより柔軟に、再利用性の高いものにすることができます。
さらに次のようなサンプルも考えることができます
List<Animal> animalList = new List<Animals> { new Cat(), new Dog(), new Cat() };
foreach (var animal in animalList)
{
animal.MakeSound();
}
これは、Catクラス、Dogクラスのインスタンスを格納したリストを作成し、それをforeach文で順に取り出し、MakeSoundメソッドを呼び出すことで、それぞれの動物の鳴き声を出力することができます。
上記のプログラムは、結果として、「Meow」,「Woof」,「Meow」が出力されます。
ポリモーフィズムは、プログラムをより柔軟に、再利用性を高めるために使用することができます。
それで、これが、C#でポリモーフィズムの一例です
ディスカッション
コメント一覧
まだ、コメントがありません