Originariamente inviato da Media7
Ok, fin qui ero arrivato. Ma la domanda che mi pongo è perchè dichiarare queste interfacce se i metodi invocati avranno una codifica differente gli uni dagli altri. E' chiaro che lo sterza_a_sinistra dell'idroguida avrà un codice differente dallo sterza_a_sinistra della cremagliera, o mi sbaglio?
Sì, ma chi effettua la sterzata non ha bisogno di sapere concretamente chi è che deve sterzare (se l'auto o il trattore).
Io posso avere tranquillamente una funzione che prende in ingresso un "veicolo sterzante" (di qualunque tipo esso sia), e chiamare tali metodi. Ora, poco importa che io a questa funzione gli passi un trattore o un'automobile, a me basta che effettui la sterzata. E per farlo, devo fare in modo che tale funzione accetti qualunque tipo di veicolo che sia in grado di sterzare. Come si può definire una cosa del genere? Mediante, appunto, un'interfaccia.
Al posto di avere una funzione per il trattore e una funzione per l'automobile, avrò un'unica funzione che accetta un "veicolo sterzante", ovvero un qualunque oggetto che implementa tale interfaccia.


Ciao.