使用派生类对象访问基类方法

时间:2012-04-11 10:28:48

标签: c#

如果我正在使用阴影,并且我想使用派生类对象访问基类方法,我该如何访问它?

4 个答案:

答案 0 :(得分:22)

使用base关键字:

base.MethodOnBaseClass();
  

base 关键字用于从派生类中访问基类的成员:

答案 1 :(得分:14)

首先将派生类对象强制转换为基类类型,如果调用方法,则调用基类方法。请记住,只有在派生类方法被遮蔽时才有效。

例如,

观察下面的注释行:

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
    }
}

答案 2 :(得分:9)

您符合方法调用的条件:

base.foo();

答案 3 :(得分:3)

DerivedClass derivedObj = new DerivedClass(); 
(derivedObj as BaseClass).Method1(); // cast to base class with method invoke