Sobes.tech
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.