ホーム -> オブジェクト指向のスケルトン
prev UML クラス図解説サイト with C# 前へ UML クラス図解説サイト with C# トップへ UML クラス図解説サイト with C# 次へ next

多態性

class Program
{
    static void Main(string[] args)
    {
        // 基本クラスの配列を宣言する
        Animal[] a = new Animal[5];

        // さまざまな派生クラスのインスタンスを代入する
        a[0] = new Cat();
        a[1] = new Dog();
        a[2] = new Cow();
        a[3] = new Dog();
        a[4] = new Cat();

        // さまざまな派生クラスのDrawメソッドが呼び出される
        for (int i = 0; i < a.Length; i++)
        {
            a[i].Cry();
        }
        Console.WriteLine();
    }
}
public class Animal
{
    // 鳴くメソッド
    public virtual void Cry()
    {
        // 仮の処理を記述しておく
        Console.Write("?");
    }
}
// 猫を意味する派生クラス
public class Cat :Animal
{
    public override void Cry()
    {
        Console.WriteLine("にゃ〜");
    }
}
// 犬を意味する派生クラス
public class Dog : Animal
{
    public override void Cry()
    {
        Console.WriteLine("わん!");
    }
}
// 牛を意味する派生クラス
public class Cow : Animal
{
    public override void Cry()
    {
        Console.WriteLine("も〜");
    }
}

prev UML クラス図解説サイト with C# 前へ UML クラス図解説サイト with C# トップへ UML クラス図解説サイト with C# 次へ next
inserted by FC2 system