"Ciao, Amigo! Bilaabo ti dirà le differenze tra una classe astratta e un'interfaccia. Ce ne sono diverse."
| Classe astratta | Interfaccia |
|---|---|
| Eredità | |
| Una classe astratta può ereditare solo una classe ma può ereditare qualsiasi numero di interfacce . | Un'interfaccia non può ereditare classi , ma può ereditare qualsiasi numero di interfacce . |
| Metodi astratti | |
| Una classe astratta può contenere metodi astratti . Ma potrebbe non averne affatto. | Tutti i metodi non statici e non predefiniti di un'interfaccia sono abstract , ovvero non hanno implementazione. Un'interfaccia non può avere alcun metodo. |
| Metodi con un'implementazione | |
| Una classe astratta può contenere metodi con un'implementazione . | Un'interfaccia può avere metodi predefiniti . |
| Dati | |
| Senza restrizioni. | Un'interfaccia contiene solo dati statici finali pubblici. |
| Creazione di oggetti | |
| Non è possibile creare un'istanza di una classe astratta. | Non è possibile creare un'istanza di un'interfaccia. |
"Questa è la mia comprensione. Breve e pertinente."
"Grazie, Amico."
GO TO FULL VERSION