2016-03-23 3 views
1

Может ли интерфейс реализован частично? Это вопрос, который меня спрашивал на экзамене. У меня нет четкого представления о «частично реализовано». Означает ли это, что методы этого интерфейса имеют некоторые операции? Но обычно у нас есть только методы без тела в интерфейсах. Поэтому, если кто-нибудь может ответить мне, я буду более благодарен.Может ли интерфейс реализован частично?

+0

java 8 добавил функцию, называемую методами по умолчанию https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html – Ramanlfc

ответ

3

Единственный способ interface может быть «частично» реализованы методы через Java 8 в default методы:

// will compile in Java 8 only 
interface Foo { 
    default void foo() { 
     System.out.println("Default foo implementation"); 
    } 
} 

Стандартный путь, прежде чем Java 8 (и до сих пор действует концептуально в зависимости от вашего объема) должен иметь [n abstract], предоставляющий метод по умолчанию для своих детей.

+0

Большое спасибо Mena за ваш ответ. Это была большая помощь. – Shamila

+0

@Shamila приветствую :) – Mena

0

Единственный способ, которым я могу интерпретировать этот вопрос таким образом, чтобы иметь «да» ответ заключается в реализации «частичную» части методы в качестве метода по умолчанию, а затем explicitly call the default method от метода, который переопределяет его:

public interface Swallow { 

    default double getMaxAirspeed() { 
     // Partial implementation of the method to be called by its full implementation, which should override this default method 
     return 1.0; 
    } 

} 

public class AfricanSwallow implements Swallow { 

    public double getMaxAirspeed() { 
     final double initialValue = Swallow.super.getMaxAirspeed(); 
     return initialValue * 2; 
    } 

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