2009年12月21日月曜日

newキーワードを使用して、派生クラスで基本クラスのフィールド値、メソッドを隠蔽してみる。

using System;


class BaseClass
{
    public string s = "基本クラス";
    public int sample = 0;


    public void printOut()
    {
        Console.WriteLine("基本クラス");
    }
}
class DerivedClass:BaseClass
{
    // s="基本クラス"を隠蔽
    new public string s="派生クラス";
    // printOut()を隠蔽
    new public void printOut()
    {
        Console.WriteLine("派生クラス");
    }
}
class MainClass
{
    static void Main()
    {
        DerivedClass drv = new DerivedClass();
        // 出力値:派生クラス
        drv.printOut();
        // 出力値:派生クラス
        Console.WriteLine(drv.s);
        // sampleは隠蔽されていない
        // 出力値:0
        Console.WriteLine(drv.sample);
    }
}

0 コメント:

コメントを投稿