【发布时间】:2010-08-11 13:06:00
【问题描述】:
为什么要隐藏方法时必须使用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
【问题讨论】:
-
你的意思是
Parent sut = new Parent();? -
@Humberto,不,我认为他的例子是合理的。