Sommario
Sebbene entrambe le strutture possano sembrare simili poiché costringono le classi che le usano a creare i metodi che hanno e le usano in modo che possano essere valide, hanno differenze chiave tra loro, che possono darci più luce su come possiamo usarle .Le differenze, per quanto sottili, ci consentono di utilizzare entrambe le strutture anche in combinazione, in questo modo possiamo ottenere un ordine maggiore nel nostro progetto e creare applicazioni che ci permettano di riprodurre al meglio gli oggetti del mondo reale in formato digitale.
RestrizioniLa differenza principale che vediamo tra classi astratte e interfacce è che la prima è una classe e la seconda no, anche se la interfaccia ha una struttura simile affronta restrizioni che non si trovano in a classe astratta.
VariabiliIl classe astratta non ha restrizioni sull'uso delle variabili, tuttavia il interfaccia se sì, infatti tutte le variabili che andremo ad usare devono essere pubblico, statico o definitivo.
In questo caso il costruttore del classe astratta deve essere invocato tramite sottoclassi, il che esclude la possibilità di istanziarlo tramite l'operatore nuovo.
In caso di interfaccia, questo non può avere costruttori poiché non è una classe, il che ci fa scartare anche la creazione di istanze con l'operatore nuovo.
metodiIn un interfaccia i metodi devono essere abstract pubblico D'altra parte, nella classe astratta possiamo inserire qualsiasi tipo di metodo senza problemi, il che per noi fa una differenza in più.
Un altro punto che dobbiamo prendere in considerazione è il modo di fare ereditarietà e implementazione che possiamo ottenere con queste due strutture in Giava, lo sappiamo quando lo facciamo eredità In una classe, possiamo solo ereditare direttamente da una classe superiore, cioè se vogliamo ereditare da due classi diverse, dobbiamo creare un effetto a cascata, dove una prima classe eredita dalla classe superiore e poi un'altra classe eredita da questo per ottenere la sua funzionalità e quella della sua classe madre.
Nel interfacce Questo problema non si verifica, infatti possiamo ereditare direttamente da più interfacce, quindi se vogliamo ottenere i loro metodi possiamo farlo senza problemi.
In caso di implementazione di un'interfaccia in una classe astratta se abbiamo più libertà, in questo caso possiamo implementare più interfacce senza alcun tipo di restrizione in questo caso, il che ci dà la possibilità di creare un'interfaccia genitore più complessa per così dire. L'importante qui è sapere e tenere in considerazione che un'interfaccia non è una classe e quindi non può ereditare da una, può solo fare ereditarietà da altre interfacce.
Con questo finiamo questo tutorial, abbiamo visto le differenze nelle restrizioni e nell'implementazione nei nostri programmi di queste due strutture in GiavaSebbene entrambi servano a modellare e definire comportamenti, ognuno ha il suo spazio, quindi quando li conosceremo meglio potremo decidere quale utilizzare nei nostri programmi realizzati con questo linguaggio.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo