class Program
{
public interface BaseInterface
{
void Test();
}
public class MyClass1 : BaseInterface
{
public void Test()
{
Console.WriteLine("in MyClass1;");
}
}
public class MyClass2 : MyClass1
{
public new void Test()
{
Console.WriteLine("in MyClass2;");
}
}
static void Main(string[] args)
{
BaseInterface x = new MyClass1();
x.Test();
x = new MyClass2();
x.Test(); }
}结果为啥是:
in MyClass1;
in MyClass1;
而不是
in MyClass1;
in MyClass2;
{
public interface BaseInterface
{
void Test();
}
public class MyClass1 : BaseInterface
{
public void Test()
{
Console.WriteLine("in MyClass1;");
}
}
public class MyClass2 : MyClass1
{
public new void Test()
{
Console.WriteLine("in MyClass2;");
}
}
static void Main(string[] args)
{
BaseInterface x = new MyClass1();
x.Test();
x = new MyClass2();
x.Test(); }
}结果为啥是:
in MyClass1;
in MyClass1;
而不是
in MyClass1;
in MyClass2;
new出来的方法只是MyClass2的成员,而不是BaseInterface的实现
BaseInterface x= new MyClass2(); //能讲清楚点吗?
{
public interface BaseInterface
{
void Test();
}
public class MyClass1 : BaseInterface
{
public void Test()
{
Console.WriteLine("in MyClass1;");
}
}
public class MyClass2 : MyClass1
{
public void Test()
{
Console.WriteLine("in MyClass2;");
}
}
static void Main(string[] args)
{
BaseInterface x = new MyClass1();
x.Test();
x = new MyClass2();
x.Test(); }
}结果为啥是:
in MyClass1;
in MyClass1;
而不是
in MyClass1;
in MyClass2;
区别就是 使用new是 “显示的” 隐藏从基类继承的成员,