Ereditarietà in Java OOP con

Cosa cos’è l’ereditarietà?

L’ereditarietà è un meccanismo in cui una classe acquisisce la proprietà di un’altra classe. Ad esempio, un bambino eredita i tratti dei suoi genitori. Con l’ereditarietà, possiamo riutilizzare i campi e i metodi della classe esistente. Quindi, l’ereditarietà facilita la riusabilità ed è un concetto importante di OOP.

In questo tutorial imparerai-

  • Tipi di ereditarietà
  • Ereditarietà in Java
  • Java Esempio di ereditarietà
  • Super parola chiave
  • Impara l’ereditarietà in OOP con esempio

Tipi di ereditarietà

Esistono Vari tipi di ereditarietà in Java:

Single Inheritance:

In Single Inheritance una classe estende un’altra classe (una sola classe).

Single Eheritance

Nel diagramma sopra, la Classe B estende solo la Classe A. La Classe A è una superclasse e la classe B è una sottoclasse.

Ereditarietà multipla:

In Multiple Inheritance, una classe che estende più di una classe. Java non supporta l’ereditarietà multipla.

Ereditarietà multipla

Come da diagramma sopra, la Classe C estende la Classe A e la Classe B.

Multilevel Inheritance:

In Multilevel Inheritance, una classe può ereditare da una classe derivata. Quindi, la classe derivata diventa la classe base per la nuova classe.

Ereditarietà multilivello

Come mostrato nel diagramma, la classe C è una sottoclasse di B e B è una della sottoclasse Classe A.

Hierarchical Inheritance:

In Hierarchical Inheritance, una classe viene ereditata da molte sottoclassi.

Ereditarietà gerarchica

Come nell’esempio precedente, le classi B, C e D ereditano lo stesso classe A.

Ereditarietà ibrida:

L’ereditarietà ibrida è una combinazione di ereditarietà singola e multipla.

Hybrid Inheritance

Come nell’esempio precedente, tutti i membri pubblici e protetti di Classe A sono ereditato nella Classe D, prima tramite la Classe B e poi tramite la Classe C.

Nota: Java non supporta l’ereditarietà ibrida / multipla

Ereditarietà in Java

JAVA INHERITANCE è un meccanismo in cui una classe acquisisce la proprietà di un’altra classe. In Java, quando esiste una relazione “Is-A” tra due classi, usiamo l’ereditarietà. La classe genitore è chiamata super class e la classe ereditata è chiamata sottoclasse. La parola chiave extends viene utilizzata dalla sottoclasse per ereditare le caratteristiche della superclasse.

Ereditarietà è importante poiché porta alla riutilizzabilità del codice.

Sintassi dell’ereditarietà Java:

class subClass extends superClass { //methods and fields } 

Ereditarietà Java E xample

Super parola chiave

La parola chiave super è simile a “questa” parola chiave.

La parola chiave super può essere utilizzata per accedere a qualsiasi membro di dati o metodi della classe genitore.

La parola chiave Super può essere utilizzata a livello di variabile, metodo e costruttore.

Sintassi:

super.<method-name>();

Learn Inheritance in OOP’s with Example

Considera la stessa applicazione bancaria dell’esempio precedente .

Dovremmo aprire due diversi tipi di conto, uno per il risparmio e un altro per il controllo (noto anche come corrente).

Confrontiamo e studiamo come possiamo affrontare la programmazione da una prospettiva di programmazione strutturata e orientata agli oggetti. Approccio strutturale: Nella programmazione strutturata, creeremo due funzioni:

  1. Una per prelevare
  2. E l’altra per l’azione di deposito.

Poiché il funzionamento di queste funzioni rimane lo stesso in tutti gli account.

L’approccio di OOP: Durante l’utilizzo dell’approccio di programmazione OOP. Creeremmo due classi.

  • Ognuno con implementazione delle funzioni di deposito e prelievo.
  • Ciò comporterà un lavoro extra ridondante.

Richiesta di modifica nel software

Ora c’è un cambiamento nella specifica dei requisiti per qualcosa che è così comune nell’industria del software. Dovresti aggiungere la funzionalità Conto bancario privilegiato con la funzione di scoperto. Per uno sfondo, lo scoperto è una struttura in cui puoi prelevare un importo superiore a quello disponibile sul saldo del tuo account.

Approccio strutturale: utilizzando l’approccio funzionale, devo modificare la mia funzione di ritiro, che è già testato e di base. E aggiungere un metodo come di seguito si prenderà cura dei nuovi requisiti.

Approccio di OOP: utilizzando l’approccio di OOP, devi solo scrivere una nuova classe con un’implementazione unica della funzionedraw. Non abbiamo mai toccato il pezzo di codice testato.

Un’altra richiesta di modifica

Cosa succede se il requisito cambia ulteriore? Piace aggiungere un conto di carta di credito con il proprio requisito unico di depositi.

Approccio strutturale: utilizzando l’approccio strutturale devi modificare la parte testata del codice di deposito ancora.

Approccio OOP “: ma usando l’approccio orientato agli oggetti, creare una nuova classe con la sua implementazione unica del metodo di deposito (evidenziato in rosso nell’immagine sotto).

Quindi, anche se inizialmente la programmazione strutturale sembra un approccio facile, l’OOP vince a lungo termine.

Vantaggio dell’ereditarietà negli OOP

Ma si può sostenere che in tutte le classi si hanno parti di codice ripetute.

Per risolvere questo problema, crei una classe genitore, dì “account” e implementa la stessa funzione di deposito e prelievo. E fai in modo che le classi figlie ereditino la classe “account”. In modo che abbiano accesso alle funzioni di prelievo e deposito nella classe account.

Le funzioni non devono essere implementate individualmente. Questa è l’ereditarietà in java. .

Write a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *