我有一些代码,它将演示Liskov替换,但我很困惑base关键字用2个参数做什么。有人可以解释一下吗?
class Rectangle
{
public Rectangle(int width, int height)
{
Width = width;
Height = height;
}
public virtual int Height {get;set;}
public virtual int Width {get;set;}
public int Area
{
get { return Height*Width }
}
现在,对于使用2个参数继承基类的square类。我也很好奇为什么下一个方法广场(int)可以在基类中使用不同名称的方法
private class Square : Rectangle
{
public Square(int size) : base(size, size) {} ///here is my confusion
public override int Width
{
get {return base.Width}
set { base.Width = value; base.Height = value}
}
public override int Height
{ /// same thing as Width }
}
答案 0 :(得分:5)
base(size, size)
调用父构造函数(在本例中为Rectangle),此构造函数接受2个参数,这就是为什么大小被指定两次。
因为正方形必须具有相同的高度和宽度,所以尺寸参数可用于width
和height