Почему использование ключевого слова «по умолчанию» в java8 - PullRequest
0 голосов
/ 02 февраля 2020

В Java 8 default введена реализация метода. У меня вопрос, почему нужно иметь ключевое слово default в названии метода / подписи. Почему это не может быть без ключевого слова default, как в обычной реализации метода?

Ответы [ 4 ]

7 голосов
/ 02 февраля 2020

Это проясняет намерение. Вы не можете случайно создать реализацию по умолчанию для метода. Точно так же, как abstract методы требуют ключевого слова, вместо того, чтобы быть методами без реализации.

Меры предосторожности для неосторожных программистов.

3 голосов
/ 02 февраля 2020

Стоит отметить, что, поскольку Java 8 интерфейсов также поддерживают static методы. Отсутствие ключевого слова default открывает путь к неоднозначности: объявление метода в интерфейсе без модификатора будет неявно stati c (как константы) или неявно по умолчанию ? На самом деле все понятно.

0 голосов
/ 02 февраля 2020

Примечание: это спекуляция, но образованная спекуляция. То, что говорит ответ @ Kayaman, также вероятно верно.

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

0 голосов
/ 02 февраля 2020

В Java 8 функция «Метод по умолчанию» или (методы Defender), которая позволяет разработчику добавлять новые методы в интерфейсы, не нарушая их существующую реализацию. Он обеспечивает гибкость, позволяющую интерфейсу определять реализацию, которая будет использоваться по умолчанию в ситуации, когда конкретный класс не сможет предоставить реализацию для этого метода.

Вы можете обратиться к приведенному ниже URL-адресу, чтобы понять больше деталей. https://dzone.com/articles/interface-default-methods-java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...