Per prima cosa, @rairana, cosa intendi per interfaccia?
In ogni caso, la risposta di @KuroKami69 non si avviciana minimamente alla risposta corretta. Diciamo pure che non centra un picchio!
E' un po' come rispondere alla comanda "come e' il tempo oggi", risposta: "ieri non sono andato in bagno, ho un po' stitichezza!!!!!"
Ma dal faceto, andiamo sul serio:
supponi di avere una classe del tipo:
class Stampa {
print viod stampa(Stringa s){ ... }
}
con la quale stampare delle stringhe di testo.
Ora, tu vuoi poter stampare questa stringa sui seguenti dispositivi:
- sulla console: banale
- sulla stampante ad aghi, quelle vecchie di una volta
- sulla telescrivente, quelle ancora piu' vecchie di un'a volta ancora prima della volta di cui sopra
- sulle ettichette delle bottiglie
- sulla stoffa della biancheria intima (mi immagino gia' ...)
- sui palloni da basket
- sulla stampate laser
- sulla stampante a getto di inchiostro
- su un tronco di legno (e perche' no')
- su una lastra di acciaio
- sul marmo per realizzare le lapidi
- ...
Ovviamente non puoi immaginare di implementare il codice per tutti questi casi, perche' non sai come funziona ogni dispositivo, e, ovviamente, il funzionamento di ogni dispositivi e' proprieta' intellettuale dell'azienda che lo produce.
Pero' le aziende che producono questi dispositivi sono disposte a realizzare il
driver (cioe' il software che le comanda) a patto da non dipendere dal TUO software. Hanno i loro sviluppatori, le loro librerie java, ecc.
Quindi come fare?
Ovviamente, a te serve che si possano interfacciare con il tuo sistema, e loro devono essere liberi di cambiare il codice a loro piacimento.
Ovviamente, tu e loro dovete comunque parlare, altrimenti il tuo software ed il loro non potranno mai funzionare assieme.
Soluzione: definisci un'interfaccia!
interface SoStampare {
void stampo(String s);
}
In questo modo, purche' implementino la TUA interfaccia (che e' il minimo punto di contatto possibile) sono liberi di fare del LORO codice quello che vogliono.
E nello stesso tempo, a TE, fintanto che implementano la TUA interfaccia, di come funziona il LORO sistema
non te ne puo fregar de meno, come si suol dire