2009年12月21日月曜日

newキーワードを使用し派生クラスで基本クラスのメンバを隠蔽しつつもbaseキーワードを使用し隠蔽した基本クラスのメンバにアクセスしてみる。

using System;


class BaseClass
{
    public int sample = 0;
}


class DerivedClass : BaseClass
{
    // sample=0を隠蔽
    new public int sample = 1;


    public void printOut()
    {
        // 出力値:1
        Console.WriteLine(sample);
        /* thisキーワードを使用し自身のクラスの
         * sampleにアクセスすることを強調 */
        Console.WriteLine(this.sample);
        /* baseキーワードを使用し基本クラスの
         * sampleにアクセス */
        // 出力値:0
        Console.WriteLine(base.sample);
    }
}


class MainClass
{
    static void Main()
    {
        DerivedClass drv = new DerivedClass();
        drv.printOut();
    }
}

0 コメント:

コメントを投稿