Выбор ответа Middle ООП в C# обновлено
Принцип подстановки Лисков
Вопрос
Класс Square : Rectangle переопределяет сеттеры так, что изменение ширины меняет и высоту. Какой принцип SOLID нарушен?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Принцип подстановки Лисков (LSP). Код, работающий с Rectangle, ожидает, что после Width = 5; Height = 2 площадь будет 10.
Варианты ответа
- Принцип единственной ответственности (SRP)
- Принцип разделения интерфейсов (ISP)
- Принцип подстановки Лисков (LSP)правильный ответ
- Принцип инверсии зависимостей (DIP)
Разбор
Код, работающий с Rectangle, ожидает, что после Width = 5; Height = 2 площадь будет 10. С Square получится 4: наследник нельзя подставить вместо базового типа без изменения поведения программы, это LSP. SRP о количестве причин для изменения класса, ISP о толстых интерфейсах, DIP о зависимости от абстракций.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «ООП в C#»
- Абстрактный класс или интерфейс
- protected internal и private protected
- Методы интерфейса по умолчанию
- Явная реализация интерфейса
- Банковские счета: инкапсуляция и инварианты
- Фигуры: полиморфная площадь
- Чем new отличается от override
- new и override при вызове через базовый тип