Какие плюсы и минусы наследования

«Какие плюсы и минусы наследования» — вопрос из категории ООП, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:
✅ Повторное использование кода – базовый класс содержит общую логику
✅ Расширяемость – можно добавлять новую функциональность в подклассах
✅ Полиморфизм – работа с объектами через базовый тип

Минусы:
❌ Жесткая связность – изменения в родительском классе влияют на всех потомков
❌ Нарушение инкапсуляции – подклассы знают детали реализации родителя
❌ Проблемы с множественным наследованием (в Java/Kotlin только через интерфейсы)

Пример:

open class Vehicle(val maxSpeed: Int) {
    fun drive() { /* общая логика */ }
}

class Car(maxSpeed: Int) : Vehicle(maxSpeed) {
    // + специфичные для Car методы
}

Альтернатива – композиция вместо наследования.