Ciao a tutti.
Che differenza c'è tra interfaccie e classi astratte?
Intendo la differenza a livello teorico.
Grazie![]()
Ciao a tutti.
Che differenza c'è tra interfaccie e classi astratte?
Intendo la differenza a livello teorico.
Grazie![]()
Con le classi astratte si parla di ereditarietà (relazione "is a"), mentre l'implementazione di interfacce garantisce solo la coerenza (funzionale) al tipo interfaccia.
Si ragioni sulla terminologia. Con "classe" si indica un modello per descrivere oggetti di un certo tipo, quindi una classe astratta mantiene il concetto; per interfaccia si intende un'altra cosa.
Tecnicamente una interfaccia è equivalente ad una classe astratta in cui ci sono gli stessi metodi tutti marcati 'abstract'.Originariamente inviato da devil89
Ciao a tutti.
Che differenza c'è tra interfaccie e classi astratte?
Intendo la differenza a livello teorico.
Grazie![]()
Le differenze sono a livello concettuale per quando riguarda le relazioni tra le varie entità in gioco. Per le interfacce si parla di "comportamento". Se implemento l'interfaccia X, dichiaro di comportarmi come X. Per le classi entra in gioco la questione della ereditarietà. Ad esempio nella libreria Swing di Java, la classe JComponent è astratta. La sotto-classe JLabel quindi "è-un" JComponent.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet