Java fornisce diversi modi per fornire l'astrazione dei dati, come le interfacce Java e le classi astratte Java. Sia l'interfaccia che la classe astratta forniscono sicurezza nascondendo i dettagli di implementazione interna e mostrando/evidenziando solo i dettagli necessari. Tuttavia, ci sono numerose somiglianze e distinzioni tra classi e interfacce astratte.
Questo post ti aiuterà negli aspetti sotto l'elenco delle interfacce Java e delle classi astratte:
Quindi, iniziamo!
Cos'è un'interfaccia Java
È un modello per una classe che contiene alcuni metodi astratti e variabili statiche/finali. In Java, le interfacce forniscono solo la dichiarazione del metodo, mentre le classi figlio/implementate forniscono la definizione del metodo.
Cos'è una classe astratta Java
Qualsiasi classe Java che ha almeno un metodo astratto (solo Dichiarazione del metodo) è noto come classe astratta in Java.
Confronto basato su somiglianze
Alcuni aspetti importanti delle interfacce Java e delle classi astratte sono elencati di seguito:
Java Abstract Class vs Java Interface
Le parole chiave "astratte" e "interfaccia" sono utilizzate in Java per creare/dichiarare rispettivamente le classi astratte e le interfacce.
Nelle interfacce, tutti i membri sono considerati pubblici per impostazione predefinita, quindi non è necessario specificare il modificatore di accesso per i membri delle interfacce. Mentre nelle classi astratte non vi è alcuna restrizione e quindi qualsiasi modificatore di accesso può essere utilizzato per i membri di classi astratte come pubblico, protetto, ecc.
La sintassi di base di una classe astratta e un'interfaccia è mostrata negli snippet di seguito:
Classe astratta
Public Abstracss Class ClassNameInterfaccia
interfaccia pubblica interfacenameLe interfacce devono disporre di tutti i metodi astratti, mentre le classi astratte possono avere metodi sia astratti che di non astratto.
L'interfaccia può avere solo membri statici, mentre le classi astratte possono avere membri statici e non statici.
Le interfacce hanno solo membri "finali" (immutabili) mentre le classi astratte possono avere membri finali e non finali.
Le interfacce non hanno alcun costruttore mentre le classi astratte hanno costruttori definiti dall'utente o predefiniti.
È possibile ottenere un'eredità multipla utilizzando interfacce mentre le classi astratte non supportano l'eredità multipla.
In Java, la classe astratta può ereditare un'altra classe e può implementare molte interfacce, d'altra parte, un'interfaccia Java può estendere solo un'altra interfaccia.
Esempio
L'esempio di seguito ti permetterà di capire come funzionano le interfacce e le classi astratte in Java:
interfaccia firstinterfaceIn questo esempio, abbiamo creato un'interfaccia "FirstInterface", una classe astratta "Abstract Class", e altre due normali classi Java ed eseguito le seguenti funzionalità:
IL Esempio di interface è la classe principale da cui abbiamo creato il metodo principale e invocato tutti i metodi di FirstInterface:
L'output ha verificato il funzionamento del programma Java di cui sopra.
Conclusione
In Java, l'astrazione può essere raggiunta usando classi e interfacce astratte, ed entrambi non possono essere istanziati. Tuttavia, ci sono molteplici distinzioni tra classi e interfacce astratte. Ad esempio, le interfacce devono disporre di tutti i metodi astratti mentre le classi astratte possono avere metodi astratti e non di assorbimento; Utilizzando le interfacce, è possibile ottenere un'eredità multipla mentre le classi astratte non supportano l'eredità multipla, ecc. Questo post ha spiegato vari aspetti di classi e interfacce astratte con l'aiuto di esempi adatti.