Назад к вопросам
Junior — Middle
69
Можно ли инициировать объект класса, который полностью не реализует функциональности?
Компании, где спрашивали
Viasat tech
Ответ от нейросети
sobes.tech AI
В Java и Kotlin нельзя создать экземпляр абстрактного класса или интерфейса, если он не реализует всю необходимую функциональность. Абстрактные классы и интерфейсы служат как шаблоны, и для их использования нужно создать подкласс или реализовать интерфейс, предоставив конкретную реализацию всех абстрактных методов.
Например, в Kotlin:
abstract class Animal {
abstract fun makeSound()
}
// Нельзя создать объект Animal напрямую:
// val animal = Animal() // Ошибка
// Нужно создать подкласс с реализацией:
class Dog : Animal() {
override fun makeSound() {
println("Woof")
}
}
val dog = Dog() // Это корректно
Таким образом, объект класса, который полностью не реализует функциональность (например, абстрактный класс без реализации всех методов), инициировать нельзя.