Sobes.tech
Back to questions
Junior — Middle
70

Можно ли инициировать объект класса, который полностью не реализует функциональности?

Companies where asked
Viasat tech

Answer from AI

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() // Это корректно

Таким образом, объект класса, который полностью не реализует функциональность (например, абстрактный класс без реализации всех методов), инициировать нельзя.