8

シャドウイングを使用していて、派生クラスオブジェクトを使用して基本クラスメソッドにアクセスする場合、どうすればアクセスできますか?

4

4 に答える 4

22

baseキーワードを使用します:

base.MethodOnBaseClass();

baseキーワードは、派生クラス内から基本クラスのメンバーにアクセスするために使用されます。

于 2012-04-11T10:30:51.000 に答える
15

まず、派生クラス オブジェクトを基本クラスの型にキャストします。メソッドを呼び出すと、基本クラスのメソッドが呼び出されます。派生クラスのメソッドがシャドウされている場合にのみ機能することに注意してください。

例えば、

以下のコメント行を確認してください。

public class BaseClass
{
    public void Method1()
    {
        string a = "Base method";
    }
}

public class DerivedClass : BaseClass
{
    public new void Method1()
    {
        string a = "Derived Method";
    }
}

public class TestApp
{
    public static void main()
    {
        DerivedClass derivedObj = new DerivedClass();
        BaseClass obj2 = (BaseClass)derivedObj; // cast to base class
        obj2.Method1();  // invokes Baseclass method
    }
}
于 2012-04-11T10:35:01.957 に答える
9

メソッド呼び出しを修飾します。

base.foo();
于 2012-04-11T10:30:20.137 に答える