2016-02-02 4 views
1

Почему мы не можем создать интерфейс со статическим методом по умолчанию?Метод по умолчанию не может быть статическим в java-интерфейсе?

public interface StaticTest {  
    default static void display() {  
    System.out.println("Display here"); 
    } 
} 
+3

Почему вы хотите создать статический метод по умолчанию? – wero

+0

Я хочу добавить функцию в интерфейс, которая может быть напрямую доступна классам, которые реализуют ее, не затрагивая прошлые реализации. –

+1

, то вам нужен либо метод по умолчанию, либо статический метод – wero

ответ

9

Статические методы не могут быть переопределены или унаследованы в любом смысле, и default методы там быть перекрыты или по наследству. Как и другие методы нестатического интерфейса, но default конкретно подразумевает, что наследование имеет значение для этого метода, что несовместимо с static.

Смежные вопросы