110,533
社区成员
发帖
与我相关
我的任务
分享
public class MyDerivedClass : MyBaseClass, IMyinterface
{
public void DoSomething()
{
Console.WriteLine("Derived Show");
}
}
IMyinterface Myinterface = new MyDerivedClass();
声明了一个MyDerivedClass的实例。并希望调用MyDerivedClass中写的DoSomething()方法。
Myinterface.DoSomething();
实际结果则是调用了MyBaseClass中写的DoSomething()方法。请问为什么呢?
谢谢!
以下是完整代码,编译则输出“Base show"
namespace test1
{
public interface IMyinterface
{
void DoSomething();
}
public class MyBaseClass:IMyinterface
{
public void DoSomething()
{
Console.WriteLine("Base show");
}
}
public class MyDerivedClass:MyBaseClass
{
new public void DoSomething()
{
Console.WriteLine("Derived Show");
}
}
class Program
{
static void Main(string[] args)
{
MyBaseClass MyBaseObj = new MyBaseClass();
IMyinterface Myinterface = new MyDerivedClass();
Myinterface.DoSomething();
Console.ReadKey();
}
}
}