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 回答
4
DerivedClass derivedObj = new DerivedClass(); 
(derivedObj as BaseClass).Method1(); // cast to base class with method invoke
于 2015-12-10T17:50:25.063 回答