Junior
Qual è la differenza tra classi astratte e interfacce?
sobes.tech AI
Risposta dell'AI
Classe astratta:
- Può contenere metodi astratti (senza implementazione) e metodi concreti (con implementazione).
- Può contenere campi (variabili di istanza).
- Può avere costruttori.
- Permette l'ereditarietà singola (una classe può ereditare da una classe astratta).
- Viene utilizzata per definire la struttura di base e il comportamento generale delle classi correlate.
Interfaccia:
- Può contenere solo metodi astratti (alcuni linguaggi, come Java dalla versione 8, consentono metodi default e statici con implementazione).
- Non può contenere campi di istanza (solo costanti).
- Non può avere costruttori.
- Permette l'implementazione multipla (una classe può implementare più interfacce).
- Viene usata per definire un contratto che le classi devono rispettare.