这是一个愚蠢的问题,但看到不同的行为感到震惊。学习了不少。
假设我在下面有两个课程
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 的对象。我们在哪里使用这种风格?仅在使用运行时多态性时?(覆盖方法)?