Differenza tra le attrezzature e le estensioni

Implements vs Extends

Gli strumenti e le estensioni sono due parole chiave trovate nel linguaggio di programmazione Java che fornisce un mezzo per trasferire funzionalità aggiunte a una nuova classe. La parola chiave Implements viene utilizzata esplicitamente per l'implementazione di un'interfaccia, mentre la parola chiave Extends viene utilizzata per ereditare da una (super) classe. Si noti che i concetti di ereditarietà e interfacce sono presenti nella maggior parte degli altri linguaggi di programmazione orientati agli oggetti come C # e VB.NET, ma offrono sintassi o parole chiave diverse per l'applicazione di tali concetti. Questo articolo si concentra solo su Implementa ed estende le parole chiave definite in Java.

estende

Estende la parola chiave viene utilizzata per implementare il concetto di ereditarietà nel linguaggio di programmazione Java. L'ereditarietà fornisce essenzialmente il riutilizzo del codice consentendo l'estensione delle proprietà e del comportamento di una classe esistente da una classe appena definita. Quando una nuova sottoclasse (o classe derivata) estende una super classe (o classe genitore) che la sottoclasse erediterà tutti gli attributi e i metodi della super classe. La sottoclasse può facoltativamente sovrascrivere il comportamento (fornire funzionalità nuove o estese ai metodi) ereditato dalla classe genitore. Una sottoclasse non può estendere più super classi in Java. Pertanto, non è possibile utilizzare estensioni per ereditarietà multipla. Per avere ereditarietà multiple, è necessario utilizzare le interfacce come spiegato di seguito.

implementa

Implementa una parola chiave nel linguaggio di programmazione Java per l'implementazione di un'interfaccia da parte di una classe. Un'interfaccia in Java è un tipo astratto che viene utilizzato per specificare un contratto che deve essere implementato dalle classi, che implementano tale interfaccia. Solitamente un'interfaccia conterrà solo firme di metodo e dichiarazioni costanti. Qualsiasi interfaccia che implementa una particolare interfaccia dovrebbe implementare tutti i metodi definiti nell'interfaccia, o dovrebbe essere dichiarata come una classe astratta. In Java, il tipo di riferimento a un oggetto può essere definito come un tipo di interfaccia. Ma quell'oggetto deve essere nullo o dovrebbe contenere un oggetto di una classe, che implementa quella particolare interfaccia. Utilizzando la parola chiave Implements in Java, è possibile implementare più interfacce in una singola classe. Un'interfaccia non può implementare un'altra interfaccia. Tuttavia un'interfaccia può estendere una classe.

Differenza tra implementazioni ed estensioni

Sebbene, Implements ed Extends siano due parole chiave che forniscono un meccanismo per ereditare attributi e comportamenti a una classe nel linguaggio di programmazione Java, vengono utilizzati per due scopi diversi. La parola chiave Implements viene utilizzata per una classe per implementare una determinata interfaccia, mentre la parola chiave Extends viene utilizzata per una sottoclasse da estendere da una super classe. Quando una classe implementa un'interfaccia, quella classe deve implementare tutti i metodi definiti nell'interfaccia, ma quando una sottoclasse estende una super classe, può o meno sovrascrivere i metodi inclusi nella classe genitore. Infine, un'altra differenza chiave tra Implements ed Extends è che una classe può implementare più interfacce ma può estendersi solo da una super classe in Java. In generale, l'uso di Implements (interfacce) è considerato più favorevole rispetto all'utilizzo di Extends (ereditarietà), per diversi motivi, come la maggiore flessibilità e la capacità di minimizzare l'accoppiamento. Pertanto, in pratica, la programmazione su un'interfaccia è preferibile rispetto all'estensione dalle classi di base.