Una classe astratta è una classe che contiene uno o più metodi astratti che sono metodi senza implementazione. Un'interfaccia è un tipo che definisce un insieme di comportamenti che una classe deve implementare. Un'interfaccia non contiene alcuna implementazione, mentre una classe astratta può contenere l'implementazione. Un'interfaccia può essere implementata da più o da qualsiasi classe, mentre una classe astratta può essere ereditata solo da una singola classe.
Differenza tra classi astratte e interfaccia