Ответ
Модификатор abstract в Kotlin/Java обозначает, что класс или член класса не имеет полной реализации и должен быть переопределён в наследниках.
Класс:
- Нельзя создать экземпляр абстрактного класса.
- Может содержать абстрактные и обычные методы/свойства.
Метод/свойство:
- Не имеет тела (в Kotlin —
= ...или{ ... }). - Должен быть реализован в наследниках.
abstract class Animal {
abstract fun makeSound() // абстрактный метод
fun eat() { println("Eating...") } // обычный метод
}
class Dog : Animal() {
override fun makeSound() { println("Bark!") } // реализация
}
Применение:
- Для создания шаблонов (например, базовый
ViewModel). - Для обязательного переопределения логики в наследниках.