Classe astratta

Una classe astratta è una classe dichiarata astratta — può o non può includere metodi astratti. Le classi astratte non possono essere istanziate, ma possono essere sottoclassi. Una classe astratta può avere campi statici e metodi statici. Quando una classe astratta è sottoclasse, la sottoclasse di solito fornisce implementazioni per tutti i metodi astratti nella sua classe padre. Tuttavia, in caso contrario, anche la sottoclasse deve essere dichiarata astratta.,

Un metodo astratto è un metodo che viene dichiarato senza una implementazione (senza parentesi graffe e seguita da un punto e virgola), come questo:

abstract void sum(int a, int b);

Considerare l’utilizzo di classi astratte, se una qualsiasi di queste affermazioni della situazione:

  1. Si desidera condividere il codice tra più strettamente relative classi.
  2. Ci si aspetta che le classi che estendono la classe astratta abbiano molti metodi o campi comuni o richiedano modificatori di accesso diversi da quelli pubblici (ad esempio protetti e privati).
  3. Si desidera dichiarare campi non statici o non finali., Ciò consente di definire metodi che possono accedere e modificare lo stato dell’oggetto a cui appartengono.

Interfaccia

Un’interfaccia è solo la dichiarazione di metodi di un oggetto; non è l’implementazione. In un’interfaccia, definiamo il tipo di operazione che un oggetto può eseguire. Queste operazioni sono definite dalle classi che implementano l’interfaccia. Le interfacce formano un contratto tra la classe e il mondo esterno e questo contratto viene applicato al momento della compilazione dal compilatore.,

Considera l’uso delle interfacce se una di queste affermazioni si applica alla tua situazione:

  1. Ti aspetti che classi non correlate implementino la tua interfaccia. Ad esempio, le interfacce Comparabili e Clonabili sono implementate da molte classi non correlate.
  2. Si desidera specificare il comportamento di un particolare tipo di dati, ma non preoccuparsi di chi implementa il suo comportamento.
  3. Si desidera sfruttare più eredità.,

Originariamente pubblicato giugno 2016

Ulteriori letture

  • Quando (non) usare le classi astratte Java
  • Java: Interfaccia vs. Classe astratta
  • Come scegliere tra l’interfaccia e le classi astratte in Java