Interface с реализацией

256
21 декабря 2016, 00:20

Я во всех учебниках видел, читал, тестировал interface с методами без реализации. Но вот копаюсь в дереве и тут есть методы с реализацией default. Это как понять? То есть можно реализовать интерфейс с реализацией??? Спасибо.

Answer 1

Можно определить интерфейс с реализацией. Эта возможность появилась в Java 8, в более ранних версиях она была недоступна. Вот пример реализации такого интерфейса:

interface Test {
    default int test(int i) {
        return i;
    }
}

Если в классе, реализующем этот интерфейс, метод не переопределяется, то будет использована дефолтная реализация из интерфейса.

Фактически, начиная с Java 8, интерфейс приобрёл некоторые черты обычного класса и стало возможным реализовать некий аналог множественного наследования.

READ ALSO
DrawerLayout cannot be cast to LinearLayout при вызове диалогового окна

DrawerLayout cannot be cast to LinearLayout при вызове диалогового окна

Этот вопрос является продолжением темы Создание всплывающего окна с произвольным содержимымВ том вопросе было предложено такое решение:

265
Андроид демонстрация обновления

Андроид демонстрация обновления

Необходимо, чтобы после обновления на устройстве при первом входе открывался некий фрагмент, демонстрирующий "Что нового в приложении", так...

263
Использование hazelcast java клиента

Использование hazelcast java клиента

Кто знает, разумно ли использовать hazelcast java client на клиентской стороне для подключения к hazelcast кластеру, или следует использовать только для...

271