一个非常简单的基类:
class Figure {
public virtual void Draw() {
Console.WriteLine("Drawing Figure");
}
}
这个继承类:
class Rectangle : Figure
{
public int Draw()
{
Console.WriteLine("Drawing Rectangle");
return 42;
}
}
编译器会抱怨矩形的“绘图”隐藏了图形的绘图,并要求我添加一个new
或override
关键字。只需添加new
即可解决此问题:
class Rectangle : Figure
{
new public int Draw() //added new
{
Console.WriteLine("Drawing Rectangle");
return 42;
}
}
但是,Figure.Draw 有一个 void 返回类型,Rectangle.Draw 返回一个 int。我很惊讶这里允许不同的返回类型......为什么会这样?