Differenza tra impegni e estensioni

Anonim

Implementazioni e versioni

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

Estende

Estende la parola chiave usata per implementare il concetto di ereditarietà nel linguaggio di programmazione Java. L'eredità prevede essenzialmente il riutilizzo del codice, consentendo l'estensione delle proprietà e del comportamento di una classe esistente da una classe di nuova definizione. Quando una nuova sottoclasse (o una classe derivata) estende una classe super (o classe parent) che la sottoclasse erediterà tutti gli attributi ei metodi della super classe. La sottoclasse può opzionalmente ignorare il comportamento (fornire funzionalità nuove o estese ai metodi) ereditati dalla classe padre. Una sottoclasse non può estendere più classi super in Java. Di conseguenza, non è possibile utilizzare estensioni per più ereditarietà. Per avere più ereditarietà, è necessario utilizzare le interfacce come spiegato di seguito.

Impieghi

Impiega la parola chiave nel linguaggio di programmazione Java utilizzato per implementare un'interfaccia 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. Di solito un'interfaccia contiene solo firme di metodo e dichiarazioni costanti. Qualsiasi interfaccia che implementa un'interfaccia particolare deve implementare tutti i metodi definiti nell'interfaccia o essere dichiarati come una classe astratta. In Java, il tipo di riferimento di un oggetto può essere definito come un tipo di interfaccia. Ma questo oggetto deve essere null o deve 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.

La differenza tra implementi e estensioni

Sebbene implementi e estenda due parole chiave che forniscono un meccanismo per ereditare gli attributi e il comportamento a una classe nel linguaggio di programmazione Java, vengono utilizzati per due scopi diversi. Impieghi la parola chiave viene utilizzata per una classe per implementare una certa interfaccia, mentre l'estensione parola chiave viene utilizzata per una sottoclasse da estendere da una classe super. Quando una classe implementa un'interfaccia, questa classe deve implementare tutti i metodi definiti nell'interfaccia, ma quando una sottoclasse estende una classe super, può o non può ignorare i metodi inclusi nella classe padre.Infine, un'altra differenza fondamentale tra Implements e Extends è che una classe può implementare più interfacce ma può estendersi solo da una classe super in Java. In generale, l'utilizzo di Implements (interfacce) è considerato più favorevole rispetto all'utilizzo di Extends (ereditarietà), per diversi motivi, come la maggiore flessibilità e la capacità di ridurre al minimo l'accoppiamento. Pertanto, in pratica, la programmazione su un'interfaccia è preferita rispetto all'estensione dalle classi di base.