Назад к вопросам
Middle
87
questionbank
Каково главное отличие между Java и Kotlin в отношении абстрактных классов и методов?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Java абстрактный класс может содержать и абстрактные, и неабстрактные методы. Абстрактные методы не имеют реализации, а неабстрактные - имеют. Абстрактные классы не могут быть инстанцированы напрямую.
В Kotlin концепция очень похожа. Ключевое отличие заключается в том, что в Kotlin все классы по умолчанию являются final. Чтобы сделать класс абстрактным, его нужно явно пометить ключевым словом abstract. Как и в Java, абстрактные методы не имеют реализации, а неабстрактные методы в абстрактном классе могут иметь реализацию.
abstract class MyAbstractKotlinClass { // Абстрактный класс в Kotlin
abstract fun abstractMethod(): String // Абстрактный метод (без реализации)
fun concreteMethod(): Int { // Неабстрактный метод (с реализацией)
return 42
}
}
abstract class MyAbstractJavaClass { // Абстрактный класс в Java
public abstract String abstractMethod(); // Абстрактный метод (без реализации)
public int concreteMethod() { // Неабстрактный метод (с реализацией)
return 42;
}
}