lunedì 28 Settembre 2020

Download in corso

Softwareone.it

05-01-2019

Java: Le Interfacce

Molto spesso le java interfacce vengono confuse con le classi astratte dato che dal punto di vista logico sono molto simili.

Le interfacce possono essere intese come un’evoluzione delle classi astratte e permettono, di fatto, di simulare l’ereditarietà multipla.

Pubblicità

Il vantaggio principale di una interfaccia, essendo comunque una classe anche se con proprietà particolari, è quello che oltre ad essere estesa può essere implementata.

La differenza tra estendere e implementare è molto grande in quanto una classe può essere ereditata solo ed esclusivamente una volta; mentre una classe può implementare infinite interfacce permettendo così l’ereditarietà multipla. 

Estendere e implementare

Per quanto riguarda l’interfacce, abbiamo alcune limitazioni rispetto ad una classe astratta; in quanto in una interfaccia possono essere dichiarati esclusivamente metodi astratti e non possono essere dichiarate variabili, ma solo costanti.

Queste limitazioni non devono essere viste come una sorta di mancanza del java, in quanto risultano essere; in realtà, un altro punto di forza del linguaggio, dato che con le interfacce si può simulare l’eredità multipla; l’ereditarietà multipla risultante sarà un’ereditarietà multipla controllata.

Questo è un grosso vantaggio in quanto l’ereditarietà multipla selvaggia, ovvero il fatto di ereditarie da più classi, variabili e metodi già implementati; spesso è uno dei fattori principali che minano la robustezza dell’intera applicazione. 

La dichiarazione avviene usando la parola chiave interface

public interface Prova { //contenuto }

L’implementazione dell’interfaccia è invece possibile utilizzando la parola chiave implements

public class Implementazione implemets Prova { //contenuto }

Per ottenere l’ereditarietà multipla basta accodare il nome delle interfacce che si vuole implementare dopo la parola chiave implements separate da virgola .

Le interfacce conferiscono ad un’applicazione uno dei concetti principali su cui si basa la programmazione ad oggetti, l’astrazione.

Infatti, l’astrazione consente di definire un concetto in maniera molto sintetica e focalizzando l’attenzione solo agli aspetti fondamentali che modellano un determinato concetto.

Dunque cosa c’è di più astratto di un interfaccia nella quale non può essere implementato nessun metodo? Praticamente niente, dunque l’interfaccia risulta essere il massimo livello di astrazione possibile per i dati. 

Pubblicità

Purtroppo non è possibile comprendere al meglio la vera essenza delle interfacce fino a che non si ha a che fare con lo sviluppo di applicazioni di grandi dimensioni dove l’organizzazione delle classi e le varie relazioni di ereditarietà devono essere monitorare costantemente onde evitare la formazione di pericolosi bugs.

Java sfrutta le interfacce per implementare la creazione dei thread e quindi dare la caratteristica di multithreading all’applicazione; senza le interfacce ciò non sarebbe stato possibile.


Java: Gli Array

I commenti sono chiusi.

Pubblicità