AgendaService è una classe che implementa l'interfaccia IAgendaService. Quella linea è l'equivalente di quanto segue:
IAgendaService service;
AgendaService agendaService = new AgendaService();
service = agendaService;
La variabile di servizio può fare riferimento a qualsiasi oggetto che implementa IAgendaService. Nell'esempio sopra, il servizio fa riferimento a un'istanza della classe AgendaService.
AgendaSevice implementa IAgendaService, quindi deve contenere tutti i metodi nell'interfaccia IAgendaService. È possibile chiamare qualsiasi metodo nell'interfaccia IAgendaService utilizzando l'oggetto servizio. Se si tenta di chiamare un metodo di AgendaService, si verificherà un errore di compilazione.
Per aiutare a chiarire qui è un esempio. L'elaborazione nella classe principale risulterà nello stesso output.
public interface IAgendaService {
public void method1();
public void method2();
}
public class AgendaService implements IAgendaService {
private String instanceName;
public AgendaService(String instanceName) {
this.instanceName = instanceName;
}
public void method1() {
System.out.println(instanceName + " - method1");
}
public void method2() {
System.out.println(instanceName + " - method2");
}
public void method3() {
System.out.println(instanceName + " - method3");
}
}
public class Main {
public static void main(String[] args) {
AgendaService agendaService = new AgendaService("1");
agendaService.method1(); // prints 1 - method1
agendaService.method2(); // prints 1 - method2
agendaService.method3(); // prints 1 - method3
IAgendaService iAgendaService = agendaService;
iAgendaService.method1(); // prints 1 - method1
iAgendaService.method2(); // prints 1 - method2
iAgendaService.method3(); // compile error because IAgendaService doesn't have a method3
}
}