Абстрактный класс экземпляра Java, который реализует интерфейс

#java #interface #instance #abstract-class #overriding

#java #интерфейс #экземпляр #абстрактный класс #переопределение

Вопрос:

У меня есть интерфейс с двумя методами и абстрактным классом, которые реализуют этот интерфейс и переопределяют один метод из него. Могу ли я создать экземпляр этого абстрактного класса, не переопределяя другой метод интерфейса? Или я могу заменить этот метод методом, который имеет другую подпись?

UPD: Спасибо за ответы, я действительно допускаю ошибки в своем вопросе. Могу ли я использовать класс anonymus, который будет расширять мой абстрактный класс, не переопределяя все методы из implements inrerface? Насколько я понимаю по ответу от DragonK, нет, и мне нужно создать класс, который будет расширять абстрактный класс и переопределять другие методы?

Комментарии:

1. Не могли бы вы привести пример того, что вы хотите? Я не уверен, что понимаю. И вы не можете создавать экземпляры абстрактных классов напрямую…

Ответ №1:

Могу ли я создать экземпляр этого абстрактного класса

Вы никогда не сможете создать экземпляр абстрактного класса.

Вы можете реализовать любые методы интерфейса, но вы все равно не сможете создать экземпляр абстрактного класса.

Ответ №2:

Если вы не имеете дело с методами Java 8 по умолчанию, ваш интерфейс не будет иметь реализаций и, следовательно, методов для переопределения.

В Java абстрактные классы также не могут быть созданы, если вы не создадите анонимный класс.

Ответ №3:

Могу ли я создать экземпляр этого абстрактного класса, не переопределяя другой метод интерфейса?

  • Вы не можете создать экземпляр абстрактного класса

могу ли я заменить этот метод методом с другой сигнатурой?

  • Вы можете заменить этот метод методом, который имеет другую сигнатуру. Но классы, расширяющие ваш абстрактный класс, переопределят все абстрактные методы.

Ответ №4:

Вы не можете создать экземпляр абстрактного класса. или вы можете иметь анонимную реализацию и создать экземпляр абстрактного класса. предоставляя переопределяющий абстрактный метод, мы можем изменить «ковариантные возвращаемые типы», но вы не можете изменить сигнатуру метода.