我无法使用基类构造函数将值分配给子类构造函数。你能帮我理解这一点吗?初始化子类构造函数:继承
代码:
class Polygon
{
public int NumSides;
public Polygon (int numsides)
{
this.NumSides = 4;
}
}
class Square : Polygon
{
public readonly int SideLength;
public Square(int SideLength) : base(SideLength)
{
this.SideLength = NumSides;
}
}
class Program
{
static void Main(string[] args)
{
Polygon p = new Polygon(1);
Console.WriteLine("Polygon Class {0}", p.NumSides);
Square s = new Square(1);
Console.WriteLine("SquareClass {0}", s.SideLength);
Console.ReadLine();
}
}
结果:多边形类:4,SquareClass:0
如果我修改于:
class Square : Polygon
{
public readonly int SideLength;
public Square(int SideLength) : base(SideLength)
{
this.SideLength = NumSides;
}
}
它的工作原理。
你确定你使用这段代码得到了这个结果吗? – user3185569
是不是你的修改代码与原始代码相同? – stuartd
输出实际上是:多边形类4,SquareClass 4 – stuartd