Mam pytanie, mam bazową klasę Rectangle i chcę z niej dziedziczyć klasę Squere. Chciałem, żeby klasa Squere miała jedną właściwość np. Side, zamiast dwóch, ale wtedy bym musiał jakoś przysłonić właściwości z klasy bazowej i nie do końca wiem jak to zrobić. Rozwiązałem to w poniższy sposób, ale wydaje mi się to średnim rozwiązaniem. W C++ bym próbował coś z = delete, ale nie mogłem znaleźć czegoś analogicznego w C#. W jaki sposób najładniej to rozwiązać?
class Rectangle
{
public virtual double Height { get; set; }
public virtual double Width { get; set; }
public Rectangle(double height, double width)
{
Height = height;
Width = width;
}
}
sealed class Squere : Rectangle
{
public override double Height { get { return base.Height; } set { base.Height = value; base.Width = value; } }
public override double Width { get { return base.Width; } set { base.Height = value; base.Width = value; } }
public Squere(double side) : base(side, side) { }
}