【发布时间】:2013-01-16 14:14:47
【问题描述】:
class BaseAppXmlLogReaders
{
public virtual void WriteLog() { }
public void Add()
{
}
}
class DerivedAppXmlLogReaders : BaseAppXmlLogReaders
{
public override void WriteLog()
{
}
public new void Add()
{ }
}
class Demo
{
public static void Main()
{
BaseAppXmlLogReaders obj = new DerivedAppXmlLogReaders();
obj.Add();//Call base class method
obj.WriteLog();//call derived class method
}
}
我有点困惑,但是它使 DerivedAppXmlLogReaders 成为对象 但是它调用了基类的 Add() 方法和派生类的 WriteLog() 方法。
【问题讨论】:
-
问题到底是什么?
-
是的,你已经覆盖了
WriteLog,只是隐藏了Add(以非多态方式)。 -
@Tikkes 我正在创建派生类的对象,但它调用基类方法
-
@Jon 如果我从派生类方法中删除新关键字,那么它会再次调用基类方法..
标签: c# base derived-class