“新”修饰符的实际实际用途是什么?
public class Base
{
public void Say()
{
Console.WriteLine("Base");
}
}
public class Derived:Base
{
public new void Say()
{
Console.WriteLine("Derived");
}
}
如果这只是无法编译,那不是更好吗?这段代码:
Derived d = new Derived();
d.Say();
((Base)d).Say();
退货
Derived
Base
这不违反里氏替换原则吗?
干杯。