2010年1月22日金曜日

Base Class(基本クラス)を定義して、それを継承したDerived Class(派生クラス)1,2を定義し、そのDerived Class1,2をBase ClassにUpcastしたりさらにDowncastしたりしてみる。

using System;


// 基本クラス
class BaseClass{}


// 派生クラス1
class DerivedClass1 : BaseClass{}


// 派生クラス2
class DerivedClass2 : BaseClass{}


class MainClass
{
    static void Main()
    {
        /* DerivedClass1,2のインスタンスをを
         * BaseClass型にアップキャスト */
        BaseClass sample1 = new DerivedClass1();
        BaseClass sample2 = new DerivedClass2();


        // sample1をDerivedClass1型にダウンキャスト
        sample1 = (DerivedClass1)sample1;


        /* sample2をDerivedClass1型にダウンキャスト
        sample2 = (DerivedClass1)sample2;
         * sample2は元はDerivedClass2なので
         * DerivedClass1にダウンキャストしようと
         * するとエラーになる */
        Console.WriteLine("エラーなく終了");
    }
}

0 コメント:

コメントを投稿