Ответ
Плюсы:
✅ Повторное использование кода – базовый класс содержит общую логику
✅ Расширяемость – можно добавлять новую функциональность в подклассах
✅ Полиморфизм – работа с объектами через базовый тип
Минусы:
❌ Жесткая связность – изменения в родительском классе влияют на всех потомков
❌ Нарушение инкапсуляции – подклассы знают детали реализации родителя
❌ Проблемы с множественным наследованием (в Java/Kotlin только через интерфейсы)
Пример:
open class Vehicle(val maxSpeed: Int) {
fun drive() { /* общая логика */ }
}
class Car(maxSpeed: Int) : Vehicle(maxSpeed) {
// + специфичные для Car методы
}
Альтернатива – композиция вместо наследования.
Видео-ответы
▶
▶
▶
▶
▶