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
    }
}