编程语言
首页 > 编程语言> > c# – 当构造函数使用1个参数时发生了什么,但base关键字使用2个参数

c# – 当构造函数使用1个参数时发生了什么,但base关键字使用2个参数

作者:互联网

我有一些代码,它将演示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 }
}

解决方法:

base(size,size)调用父构造函数(在本例中为Rectangle),此构造函数采用2个参数,这就是为什么size指定了两次.

因为正方形必须具有相同的高度和宽度,所以尺寸参数可用于宽度和高度

标签:c,overloading,base-class
来源: https://codeday.me/bug/20190609/1206544.html