Можно ли сделать метод абстрактным и статичным

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

Ответ

Нет, в Java (и Kotlin) метод не может быть одновременно abstract и static.

Почему?

  • abstract требует переопределения в подклассах
  • static методы принадлежат классу, а не экземпляру, и не участвуют в наследовании

Пример:

abstract class MyClass {
    abstract fun regularMethod() // OK
    // abstract static fun staticMethod() // Ошибка!
}

Если нужна статическая логика, используйте обычные static/companion методы или паттерны типа фабрики.