Uvod u vrijeme rada polimorfizma na Javi

U ovom ćemo članku naučiti o Runtime Polimorfizmu na Javi. "Poly" znači "mnogo", a "morph" znači "tip". Dakle, izraz polimorfizam označava istu stvar različitih tipova. Ovdje ćemo vidjeti kako Java arhivira polimorfizam u vremenu izvođenja, što znači nakon sastavljanja, ali prije pokretanja koda.

Sintaksa:

Za vrijeme polimorfizma na Javi, trebali biste slijediti osnovnu sintaksu jave s napomenama. @Override se može upotrijebiti @Override napomena da bismo posebno @Override koju metodu želimo nadjačati.

Kako polimorfizam runtime djeluje na Javi?

Polimorfizam runtime djeluje u Javi metodom nadjačavanja. Poništavanje metoda događa se kada objekti imaju isti naziv i argumente metode i vrstu kao i roditeljska klasa, ali s različitom funkcionalnošću. Ako dječja klasa ima u sebi tu vrstu metode, nazivamo je prevladana metoda.

Zašto se to naziva Polimorfizam tokom vremena rada?

kada nazovemo prejačenu metodu dječje klase preko referentnog tipa roditelja (taj se fenomen u Javi naziva „ažuriranje“), tada tip objekta označava koja će se metoda ili funkcionalnost pozvati. Donošenje ove odluke događa se tijekom izvršavanja JVM-a nakon sastavljanja koda. Stoga se naziva polimorfizmom trčanja.

Također se naziva i "otprema dinamičke metode". Razlog je tako nazvan, zbog činjenice da se funkcionalnost metode dinamički odlučuje u vremenu rada prema objektu JVM

Naziva se i „kasno vezivanje“, jer se vezanje metode i objekta, što znači funkcionalnost metode objekta koja se prikazuje, odlučuje kasno, tj. Nakon sastavljanja.

Pravila i ograničenja u Runtim e polimorfizmu

Ispod su neka od pravila i ograničenja polimorfizma vremena izvođenja:

Pravila polimorfizma za vrijeme izvođenja

  • Metode nastave djece i roditelja moraju imati isti naziv.
  • Metode podređene i roditeljske klase moraju imati isti parametar.
  • IS-A veza je obavezna (nasljeđivanje).

Ograničenja runtime polimorfizma

  • Ne mogu se preglasiti privatne metode roditeljske klase.
  • Ne može se nadjačati Završne metode.
  • Ne može se nadjačati statička metoda.

Primjeri polimorfizma vremena izvođenja u Javi

Ovdje ćemo raspravljati o nekim primjerima koda polimorfizma Run time.

Primjer 1

U ovom ćemo primjeru pokazati kako metoda showcase () prikazuje različite poruke ovisno o vrsti objekta koji je povezan. Kada je povezan sa vrstom "Roditelji", prikazuje poruke iz roditeljske klase. Dok je povezana sa vrstom "Djeca", ona prikazuje poruke iz razreda djece.

Kodirati:

class Parents (
public void showcase () (
System.out.println("I am Parent");
)
)
class Children extends Parents (
@Override
public void showcase () (
System.out.println("I am Children");
)
)
public class RunTimePolymorphism (
public static void main(String args()) (
Parents superObject = new Parents();
superObject.showcase(); //method of super class or parent class is called
Parents subObject = new Children(); // upcasting
subObject.showcase();//method of sub class or child class is called by Parent reference, this is called "Run time Polymorphism"
Children subObject2 = new Children();
subObject2.showcase(); //method of sub class or child class is called
)
)

Izlaz:

Primjer 2

Uzmimo za primjer polimorfizam pokrenutog vremena u slučaju višeslojnog nasljeđivanja. U ovom primjeru uzeli smo u obzir dvije razine nasljeđivanja. U ovom ćemo primjeru pokazati kako metoda sip () prikazuje različite poruke ovisno o vrsti objekta koji je povezan. Kad je povezan sa vrstom "Human", prikazuje poruke roditeljske klase. Dok je, kada je povezan s tipom "Čovjek", on pokazuje poruke svoje dječje klase. Ponovno u drugom stupnju nasljeđivanja, kad je povezano s tipom "Beba", pokazuje poruke iz svoje dječje klase svog roditelja koja je klasa "Čovjek".

Kodirati:

class Human(
void sip() (
System.out.println("Human is sipping");
)
)
class Man extends Human(
void sip()(
System.out.println("Man is sipping soup");
)
)
class Baby extends Man(
void sip()(
System.out.println("Baby is sipping milk");
)
)
public class RunTimePolymorphism (
public static void main(String args())(
Human superObject=new Human();
Human subObject=new Man(); // // upcasting : first level of heritance
Human babyObject=new Baby(); // // upcasting : second level of heritance
superObject.sip();
subObject.sip(); //run time polymorphism happening in first level of heritance
babyObject.sip(); //run time polymorphism happening in second level of heritance
)
)

Izlaz:

Primjer 3

Uzmimo još jedan primjer polimorfizma iz vremena izvođenja u slučaju višeslojnog nasljeđivanja. U ovom primjeru imamo u vidu tri razine nasljeđivanja. U ovom ćemo primjeru pokazati kako značajka metode () prikazuje različite značajke ovisno o kojoj vrsti objekta je povezana. Kad je povezan s tipom "operativni sustav", prikazuje poruke roditeljske klase. Dok, kada je povezan s tipom "DOS", pokazuje poruke iz svoje podređene klase. Opet u drugoj razini nasljeđivanja, kad je povezana s tipom "Windows", pokazuje poruke iz svoje podređene klase roditelja koja je klasa "DOS". Ponovno u trećoj razini nasljeđivanja, kada je povezana s tipom "WindowsMobile", pokazuje poruke iz svoje podređene klase roditelja koja je klasa "Windows".

Kodirati:

class OperatingSytem(
void feature() (
System.out.println("This is Operating Sytem");
)
)
class DOS extends OperatingSytem(
void feature()(
System.out.println("This is DOS");
)
)
class Windows extends DOS(
void feature()(
System.out.println("This is Windows");
)
)
class WindowsMobile extends Windows(
void feature()(
System.out.println("This is Windows Mobile");
)
)
public class RunTimePolymorphism (
public static void main(String args())(
OperatingSytem superObject=new OperatingSytem();
OperatingSytem subObject=new DOS(); // child object type : first level of heritance
OperatingSytem sub2Object=new Windows(); // child object type : second level of heritance
OperatingSytem sub3Object=new WindowsMobile(); // child object type : third level of heritance
superObject.feature();
subObject.feature(); //run time polymorphism happening in first level of heritance
sub2Object.feature(); //run time polymorphism happening in second level of heritance
sub3Object.feature(); //run time polymorphism happening in third level of heritance
)
)

Izlaz:

Zaključak

Ovim zaključujemo naše učenje o temi "Polimorfizam vremena izvođenja u Javi". Zapišite sebi kodove spomenute u gornjim primjerima u java prevoditelju i provjerite izlaz. Učenje kodova biće nepotpuno ako kôd sami ne napišete.

Preporučeni članci

Ovo je vodič za Runtime Polimorfizam na Javi. Ovdje ćemo raspraviti kako Polimorfizam runtime djeluje u Javi s primjerima. Možete također pogledati sljedeće članke da biste saznali više -

  1. Statička ključna riječ na Javi
  2. Prevladavanje u Javi
  3. Što je polimorfizam?
  4. Rust vs Golang

Kategorija: