/*
* 这个程序说明:
* 如果基类继承了接口,而派生类用new方式覆盖了基类中方法
* 那么,接口对方法的调用总是调用基类中的方法
* 而不管接口是通过基类还是派生类进行的
*/
using System;
namespace Test.Shengyi
{
internal interface IBase
{
void PrintName();
}
internal class Base : IBase
{
public void PrintName()
{
Console.WriteLine("Class name : Base");
}
}
internal class Derieved : Base
{
new public void PrintName()
{
Console.WriteLine("Class name : Derieved");
}
}
class MainProgram
{
static void Main()
{
Base b = new Base();
IBase ib;
ib = b;
ib.PrintName();
Derieved d = new Derieved();
ib = d;
ib.PrintName();
}
}
}
输出结果:
Class name : Base
Class name : Base