2015-11-25 4 views
0
interface temp 
{ 
    public int add(int a,int b) 
    { 
     return a+b; 
    } 
} 

можно ли реализовать метод, описанный выше в интерфейсе, или нам нужно просто определить методы в интерфейсе.можно ли реализовать какие-либо методы внутри интерфейса в java

+0

@BackSlash: этот поток устарел. В текущих версиях Java возможно реализовать реализованные методы в интерфейсах, всевозможные методы по умолчанию. – Stultuske

+0

@Stultuske Вы прочитали эту тему? Принятый ответ - все об этом. –

+0

@AlexisC .: без сомнения, именно поэтому они шли gung ho на Java 6 – Stultuske

ответ

7

Да, вы можете в Java 8, используя стандартные методы

interface temp 
{ 
    default public int add(int a,int b) 
    { 
     return a+b; 
    } 
} 

Как отметил Тило в комментариях, Java 8 также добавлена ​​возможность иметь статические методы в интерфейсах:

interface temp 
{ 
    public static int add(int a,int b) 
    { 
     return a+b; 
    } 
} 
+0

Nitpicking: Поскольку OP задает вопрос о * любом * методе, тогда ответ отрицательный, потому что мы не можем реализовать этот метод методами класса Object, например 'equals' или' toString'. – Pshemo

+0

Ответ на непигмент: OP спрашивал, можем ли мы реализовать любые * методы. Не * каждый * метод. – Thilo

+0

Но что произойдет, если вы предоставите значение по умолчанию для 'toString' в вашем интерфейсе? Некоторая ошибка компиляции для класса, который ее реализует (просят явно указать, какой 'toString' он хочет наследовать)? – Thilo

0

Если вы не используете java 8, тогда вы можете определять методы только в интерфейсе.

public interface temp { 
    int add(int a,int b); 
} 

Это новая функция «по умолчанию метод в интерфейсе» введен в java 8.

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