"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."