Ich bin nicht in der Lage, den Wert der Kindklassenkonstruktor zuweisen, mit Basisklasse Konstruktor. kannst du mir helfen, das zu verstehen?Initialisieren der Kindklasse Konstruktor: Vererbung
Code:
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();
}
}
Ergebnis: Polygon-Klasse: 4, SquareClass: 0
Wenn ich ändern:
class Square : Polygon
{
public readonly int SideLength;
public Square(int SideLength) : base(SideLength)
{
this.SideLength = NumSides;
}
}
Es funktioniert.
Sind Sie sicher, dass Sie dieses Ergebnis mit diesem Code erhalten? – user3185569
Ist Ihr geänderter Code nicht derselbe wie der ursprüngliche Code? – stuartd
Ausgabe ist in der Tat: Polygon Class 4, SquareClass 4 – stuartd