Differenze tra classi astratte e interfacce
Entrambe permettono di definire un concetto senza dover conoscere i dettagli di una classe, dettagli che saranno implementati dai figli.
Differenze sintattiche principali:
- Una classe astratta, oltre a metodi astratti, può contenere dati e metodi non astratti. Una interfaccia no.
- Una classe astratta può avere un costruttore. Una interfaccia no.
- In una interfaccia si possono definire solo costanti.
- In una interfaccia i metodi la visibità sarà public in automatico (c’è anche la possibilità di usare quella di default ma i figli saranno “costretti” a fare l’override dei metodi con public, anche se sono nello stesso package).