C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■84105 / 1階層)  オーバーライドの使い方
□投稿者/ Hongliang (543回)-(2017/05/16(Tue) 10:54:33)
オーバーライドは、基底クラスのメンバにvirtualキーワードを、
派生クラスのオーバーライドするメンバにoverrideキーワードを使用します。

newキーワードを使うと、オーバーライドではなく、隠蔽という動作を示します。

class BaseClass {
    public virtual void TestOverride() { Debug.Print("BaseClass.TestOverride"); }
    public void TestHide { Debug.Print("BaseClass.TestHide"); }
}
class DerivedClass {
    public override void TestOverride() { Debug.Print("DerivedClass.TestOverride"); }
    public new void TestHide() { Debug.Print("DerivedClass.TestHide"); }
}

void Test() {
    BaseClass a = new DerivedClass();

    // オーバーライドだとインスタンスの型のメソッドが呼ばれる
    a.TestOverride();  // DerivedClass.TestOverride

    // 隠蔽だと変数の型のメソッドが呼ばれる
    a.TestHide();      // BaseClass.TestHide
}

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←オーバーライドの使い方 /なと →Re[2]: オーバーライドの使い方 /なと
 
上記関連ツリー

オーバーライドの使い方 / なと (17/05/16(Tue) 10:31) #84104
Re[1]: オーバーライドの使い方 / 初級者 (17/05/16(Tue) 10:59) #84108
Re[1]: オーバーライドの使い方 / 774RR (17/05/16(Tue) 10:57) #84107
Re[1]: オーバーライドの使い方 / furu (17/05/16(Tue) 10:55) #84106
オーバーライドの使い方 / Hongliang (17/05/16(Tue) 10:54) #84105 ←Now
  └ Re[2]: オーバーライドの使い方 / なと (17/05/16(Tue) 11:05) #84109 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信