Ho un librone di java sottomano, ma non riesco a capire la differenza fra una classe astratta e una interfaccia.
Entrambe stabiliscono solo dei metodi senza definirli, quindi dove sta la diifferenza?![]()
Ho un librone di java sottomano, ma non riesco a capire la differenza fra una classe astratta e una interfaccia.
Entrambe stabiliscono solo dei metodi senza definirli, quindi dove sta la diifferenza?![]()
In una interfaccia hai solo metodi dichiarati e non implementati mentre in una classe astratta hai alcuni metodi solo dichiarati e altri dichiarati e implementati (un po' di tutti e due), in più in una classe astratta puoi dichiarare sia costanti che variabili mentre in un'interfaccia puoi avere solo costanti!
Ciao.![]()
Per prendere le proprietà di una classe astratta da una sottoclasse devi estenderla, invece, le interfacce devono essere implementate.
Non necessariamente devi implementare, in una sottoclasse, tutti i metodi della classe astratta e puoi farlo anche in modo parziale, in tal caso, la sottoclasse dovrà essere dichiarata astratta a sua volta. (Qualcuno dovrà pur implementarli ...). Nelle interfacce ciò non è permesso.
Puoi implementare più interfacce in una classe e solamente una classe astratta.
Altre differenze non mi vengono in mente ...![]()