Я вижу людей, создающих экземпляр некоторого класса и назначающих его ссылочной переменной интерфейса типа, реализуемой классом.Интерфейс как тип в java
interface A {
void display();
}
public class InterfaceObject implements A {
public void display(){
System.out.println("show this..");
}
public static void main(String[] args) {
A aObj = new InterfaceObject();
aObj.display();//OUTOUT:show this..
InterfaceObject bObj = new InterfaceObject();
bObj.display();//OUTOUT:show this..
}
}
Здесь объект aObj является объектом интерфейса и объект BOBJ является прямым экземпляром класса, реализующего интерфейс. Однако отображение вызова() через оба объекта дает то же результат.
ВОПРОС: В чем преимущество создания объекта интерфейса (эталонная переменная типа интерфейса)? это только добавляет больше путаницы в код? Конечно, этого не произойдет.
Обычно это значит, что вы можете создать 'class OtherInterfaceObject реализует A', который делает что-то другое при вызове' display() '. – markspace
_Что такое преимущество создания объекта интерфейса? _ Вы не можете создать объект интерфейса. Вы можете определить ссылочную переменную, тип которой является интерфейсом. – Voicu
Интерфейсы обеспечивают свободу от наследования и иерархии классов. Используй их. – user2864740