【发布时间】:2013-11-10 15:48:20
【问题描述】:
这是一个愚蠢的问题,但看到不同的行为感到震惊。学到很多。
假设我在下面有两个类
Class A
{
public void Display()
{
}
}
Class B : A
{
public void Display()
{
}
}
Class C : B
{
public void Display()
{
}
}
Class Final
{
static void Main()
{
var c = new C();
// B c = new C();
}
}
我的疑问是,以上两种方法都给出了不同的结果。我可以知道B c = new C() 创建 B 或 C 的对象吗?我的理解是,它创建了B的对象。那为什么我们说new C()?我同意C c = new C(); 但我想,B b = new C(); 创建 B 的对象。我们在哪里使用这种风格?仅在使用运行时多态性时? (覆盖方法)?
【问题讨论】:
标签: c# .net visual-studio-2010 c#-4.0