Решает ли это нарушение квадратного прямоугольника подстановки Лискова?

Я очень плохо знаком с принципами дизайна SOLID. Одна вещь, с которой у меня возникли проблемы с пониманием, - это пример "прямоугольника-прямоугольника" нарушения принципа подстановки Лискова. Почему установщик высоты / ширины квадрата должен перекрывать прямоугольник? Разве это не то, что вызывает проблему, когда есть полиморфизм?

Разве удаление этого не решает проблему?

class Rectangle
{
    public /*virtual*/ double Height { get; set; }
    public /*virtual*/ double Width { get; set; }
    public double Area() { return Height * Width; }
}

class Square : Rectangle
{
    double _width; 
    double _height;
    public /*override*/ double Height
    {
        get
        {
            return _height;
        }
        set
        {
            _height = _width = value;
        }
    }
    public /*override*/ double Width
    {
        get
        {
            return _width;
        }
        set
        {
            _width = _height = value;
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        Rectangle r = new Square();
        r.Height = 5;
        r.Width = 6;

        Console.WriteLine(r.Area());
        Console.ReadLine();
    }
}

Выход 30, как и ожидалось.

Ответы на вопрос(2)

Ваш ответ на вопрос