【发布时间】:2013-07-30 05:11:44
【问题描述】:
我有以下代码
class A{
public void display()
{
Console.WriteLine("In class A");
}
}
class B:A{
public void display()
{
Console.WriteLine("In class B");
}
public static void show()
{
//base.display(); gives error
}
}
在上面的代码中 base.display();给出错误。我必须在方法 show() 中调用基类方法 display() 而不创建类 A 的对象。我该怎么做?或者我不能这样做?
【问题讨论】:
-
你试过
new A().display()吗? -
为什么不直接从 B show() 中删除静态密钥?
-
@simon thanx,它使用 new A().display() 工作,但是任何其他方式不使用 new A().display 并访问覆盖方法的非静态方法派生类的静态方法中的基类。B 类的扩展方法中触发了我的问题。
-
从技术上讲,您并没有覆盖 B 类中的显示方法,您只是声明了一个具有相同名称的新方法。我敢打赌你的编译器会给你一个警告。