【发布时间】:2015-06-05 05:59:26
【问题描述】:
给定以下类:
interface IShape
{
void Draw();
}
class Rectangle : IShape
{
public void Draw() { }
}
class Square : Rectangle
{
public new void Draw() { }
}
有人能解释一下第二个 Draw 方法会发生什么吗?
Rectangle rect = new Rectangle();
rect.Draw();
rect = new Square();
rect.Draw();
顺便说一句,我说会调用Square类的Draw方法,但是当我进入VS2013时,调用了Rectangle类的Draw方法。
【问题讨论】:
-
研究覆盖与隐藏。那里有很多材料。
-
这实际上将开始涉足一些关于如何方法本身被调用和绑定的深层概念。将虚拟表添加到您的研究中。
-
这是一个对所有程序开放的问题。让优雅的代码之战开始。
标签: c# visual-studio oop inheritance