История изменений
Исправление Nervous, (текущая версия) :
А как ты собрался отличать родителя от особых подклассов?
Зачем мне это делать? С точки зрения вызывающего кода не должно быть никакой разницы, родителя ты передал или потомка. Если ожидается ПлоскаяФигура, можно передать туда ПлоскаяФигура, его потомка Треугольник или потомка потомка РавнобедренныйТреугольник, и наличие лишних методов не должно ничего сломать — потому что вызывающий код может рассчитывать только на методы ПлоскаяФигура, которые у всех его потомков 1) должны быть и 2) должны делать the right thing.
Насколько я понимаю, LSP касается пункта 2.
Исправление Nervous, :
А как ты собрался отличать родителя от особых подклассов?
Зачем мне это делать? С точки зрения вызывающего кода не должно быть никакой разницы, родителя ты передал или потомка. Если ожидается ПлоскаяФигура, можно передать туда ПлоскаяФигура, его потомка Треугольник или потомка потомка РавнобедренныйТреугольник, и наличие лишних методов не должно ничего сломать — потому что вызывающий код может рассчитывать только на методы ПлоскаяФигура, которые у всех его потомков 1) должны быть и 2) должны делать the right thing.
Исходная версия Nervous, :
А как ты собрался отличать родителя от особых подклассов?
Зачем мне это делать? С точки зрения вызывающего кода не должно быть никакой разницы, родителя ты передал или потомка. Если ожидается ПлоскаяФигура, можно передать туда ПлоскаяФигура, его потомка Треугольник или потомка потомка РавнобедренныйТреугольник, и наличие лишних методов не должно ничего сломать — потому что вызывающий код может рассчитывать только на методы ПлоскаяФигура.