Ответ
Плюсы:
✅ Повторное использование кода – базовый класс содержит общую логику
✅ Расширяемость – можно добавлять новую функциональность в подклассах
✅ Полиморфизм – работа с объектами через базовый тип
Минусы:
❌ Жесткая связность – изменения в родительском классе влияют на всех потомков
❌ Нарушение инкапсуляции – подклассы знают детали реализации родителя
❌ Проблемы с множественным наследованием (в Java/Kotlin только через интерфейсы)
Пример:
open class Vehicle(val maxSpeed: Int) {
fun drive() { /* общая логика */ }
}
class Car(maxSpeed: Int) : Vehicle(maxSpeed) {
// + специфичные для Car методы
}
Альтернатива – композиция вместо наследования.
Видео-ответы
▶
Собеседование на Java-разработчика | Разбор вопросов для подготовки: Spring, Hibernate, Kotlin
▶
Миддл или же чего-то не хватает? / Техсобес на позицию Middle Python Developer / Mock interview
▶
Собеседование в Яндекс. Платформа Android
▶
Проводим собеседование в Android-команду Тинькофф в прямом эфире
▶
Собеседование на позицию Java junior #1 Антон