为什么需要隐藏方法时使用新的关键字?为什么在隐藏方法时使用“new”?
我有两个类:
public class Parent
{
public void Print()
{
Console.WriteLine("Parent");
}
}
public class Child : Parent
{
public void Print()
{
Console.WriteLine("Child");
}
}
下面的代码产生给定输出:
Parent sut = new Child();
sut.Print();
输出:家长
Child sut = new Child();
sut.Print();
输出:儿童
我明白个在这可能是一个问题,如果它隐藏不是有意的,但有没有其他原因使用“新”(例外警告)?
编辑:
可能是我不清楚。这是同样的情况,如:
public void foo(Parent p)
{
p.Print();
}
被称为:
Child c = new Child;
foo (c);c
您的意思是'父SUT =新的父();'? – Humberto 2010-08-11 13:10:50
@Humberto,不,我认为他的榜样是健全的。 – 2010-08-11 13:16:46
可能的重复[为什么我们需要新的关键字,为什么是默认行为隐藏和不重写?](http://stackoverflow.com/questions/3117838/why-do-we-need-the-new-关键字和为什么是默认行为 - 隐藏和不 - ov) – 2010-08-11 13:38:15