Cos’è il polimorfismo in Java?

Il polimorfismo in Java si verifica quando ci sono una o più classi o oggetti correlati tra loro per ereditarietà. In altre parole, è la capacità di un oggetto di assumere molte forme. L’ereditarietà consente agli utenti di ereditare attributi e metodi e il polimorfismo utilizza questi metodi per eseguire attività diverse. Quindi, l’obiettivo è la comunicazione, ma l’approccio è diverso.

Ad esempio, hai uno smartphone per la comunicazione., La modalità di comunicazione che si sceglie potrebbe essere qualsiasi cosa. Può essere una chiamata, un messaggio di testo, un messaggio di immagine, posta, ecc. Quindi, l’obiettivo è comune che è la comunicazione, ma il loro approccio è diverso. Questo è chiamato Polimorfismo.

In questo tutorial, imparerai –

  • Che cos’è il polimorfismo?
  • Polimorfismo Java in OOP con esempio
  • Metodo Override
  • Differenza tra sovraccarico e override
  • Cos’è il polimorfismo dinamico?,
  • parola Chiave Super
  • Differenza tra Statico & Dinamico Polimorfismo

Clicca qui se il video non è accessibile

Java Polimorfismo in OOP con Esempio

Abbiamo una classe genitore, ‘Account’ con funzione di deposito e prelievo. Conto ha 2 classi figlio
L’operazione di deposito e prelievo è lo stesso per il salvataggio e conti correnti. Quindi i metodi ereditati dalla classe Account funzioneranno.,

Cambiamento nel requisito software

C’è un cambiamento nelle specifiche dei requisiti, qualcosa che è così comune nell’industria del software. Si suppone di aggiungere funzionalità conto bancario privilegiato con impianto di scoperto.

Per uno sfondo, scoperto è una struttura in cui è possibile prelevare un importo più di disponibile il saldo nel tuo account.

Quindi, ritirare il metodo per esigenze privilegiate da implementare di nuovo., Ma non si cambia il pezzo testato di codice in Risparmio e conto corrente. Questo è il vantaggio di OOPS

Passaggio 1) In modo tale che quando viene chiamato il metodo “ritirato” per il salvataggio dell’account viene eseguito un metodo dalla classe account genitore.

Passaggio 2) Ma quando viene eseguito il metodo di” Prelievo ” per l’account privilegiato (impianto di scoperto) chiamato metodo di prelievo definito nella classe privilegiata. Questo è polimorfismo.,

Sovrascrittura del metodo

La sovrascrittura del metodo sta ridefinendo un metodo di super classe in una sottoclasse.

Regole per l’override del metodo

  • La firma del metodo, cioè il nome del metodo, l’elenco dei parametri e il tipo di ritorno devono corrispondere esattamente.
  • Il metodo sovrascritto può ampliare l’accessibilità ma non restringerla, cioè se è privata nella classe base, la classe figlio può renderla pubblica ma non viceversa.,

Esempio

Differenza tra sovraccarico e override

Cos’è il polimorfismo dinamico?

Il polimorfismo dinamico è il meccanismo con cui è possibile definire più metodi con lo stesso nome e firma nella superclasse e sottoclasse. La chiamata a un metodo sovrascritto viene risolta in fase di esecuzione.,

Dinamico Polimorfismo Esempio:

Una variabile di riferimento della super classe può fare riferimento a un sotto-oggetto di classe

 Doctor obj = new Surgeon();

Considerare l’istruzione

obj.treatPatient();

Qui la variabile di riferimento “obj” della classe padre, ma l’oggetto si fa riferimento è del bambino di classe (come mostrato in figura).

obj.,n

Se una classe base di riferimento è utilizzato per chiamare un metodo, il metodo da invocare è deciso dalla JVM, a seconda dell’oggetto il riferimento è rivolto

Per esempio, anche se obj è un punto di riferimento per il Medico, si chiama il metodo di Chirurgo, come si rileva da un Chirurgo oggetto

Questa è deciso in fase di esecuzione e, quindi, definito dinamico o di run-time polimorfismo

parola Chiave Super

che Cosa succede se il treatPatient metodo del Chirurgo classe vogliono eseguire le funzionalità definite nel Medico di classe e quindi eseguire una sua specifica funzionalità?,
In questo caso, la parola chiave super può essere utilizzata per accedere ai metodi della classe genitore dalla classe figlio.
Il metodo treatPatient nella classe Surgeon potrebbe essere scritto come:

treatPatient(){ super.treatPatient(); //add code specific to Surgeon}

La parola chiave super può essere utilizzata per accedere a qualsiasi membro o metodo di dati della classe super nella sottoclasse.,br>Example:-To learn Inheritance, Polymorphism & super keyword

Step 1) Copy the following code into an Editor

Difference between Static & Dynamic Polymorphism

Static Polymorphism
Dynamic Polymorphism
It relates to method overloading., Si riferisce alla sovrascrittura del metodo.

Gli eventuali errori vengono risolti in fase di compilazione. Poiché il codice non viene eseguito durante la compilazione, da qui il nome statico.

Ex:

void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. 

Nel caso in cui una variabile di riferimento stia chiamando un metodo sovrascritto, il metodo da invocare è determinato dall’oggetto, a cui punta la variabile di riferimento. Questo può essere determinato solo in fase di esecuzione quando il codice è in esecuzione, da qui il nome dynamic.,

Ex:

//reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient();