C# C# Objects Inheritance Inheritance

Inheritance

The Polygon class represents a 2 dimensional shape. It has a public field named NumSides. Create a new type of polygon called Square. It should have a public readonly field named SideLength that’s initialized using the constructor. Use base to initialize NumSides to 4.

Polygon.cs
namespace Treehouse.CodeChallenges
{
    class Polygon
    {
        public readonly int NumSides;

        public Polygon(int numSides)
        {
            NumSides = numSides;
        }
    }
     class Square : Polygon
    {
        public readonly int SideLength;

        public Square : base (NumSides)
        {
            SideLength = sideLength;
        }
    }
 }

2 Answers

Windesson Almeida
Windesson Almeida
Full Stack JavaScript Techdegree Student 11,072 Points

Debug with VIEW>OTHER WINDOWS > C# INTERACTIVE

> class Square : Polygon
. {
.     public readonly int SideLength;
. 
.     public Square(int sideLength) : base(4)
.     {
.         SideLength = sideLength;
.     }
. }
> 
> var sq = new Square(20);
> sq
Submission#8.Square { NumSides=4, SideLength=20 }
Robert Stefanic
Robert Stefanic
33,070 Points

The constructor for Square is missing any arguments that would be passed to it.

class Square : Polygon
{
    public readonly int SideLength;

    public Square(/*Your arguments here*/) : base (NumSides)
    {
        SideLength = sideLength;
    }
}

You'll also need to fix the body of the constructor as well (or the argument that's passed to the constructor of the base class).

Let me know if you need any more tips.