logo

Upcasting a Downcasting v Jave

Proces konverzie jedného dátového typu na iný je známy ako Typové odlievanie a Upcasting a Downcasting je typ typového obsadenie objektu. V jazyku Java môže byť objekt tiež typizovaný ako dátové typy. Rodič a Dieťa objekty sú dva typy objektov. Pre objekt sú teda možné dva typy typového obsadenie, t.j. Rodič dieťaťu a Dieťa rodičovi alebo môže povedať Upcasting a Downcasting .

In Java , objekt môže byť tiež typizovaný ako dátové typy. Rodič a Detské predmety sú dva typy objektov. Pre objekt sú teda možné dva typy typového obsadenie, t.j. Rodič dieťaťu a Dieťa rodičovi alebo môže povedať Upcasting a Downcasting .

Typové odlievanie sa používa na zabezpečenie toho, či premenné sú správne spracované funkciou alebo nie. In Upcasting a Downcasting , typujeme podriadený objekt k rodičovskému objektu a rodičovský objekt k podriadenému objektu súčasne. Upcasting môžeme vykonávať implicitne alebo explicitne, ale downcasting nemôže byť implicitne možný.

Upcasting a Downcasting v Jave

Poďme sa ponoriť do hĺbky oboch týchto typov odlievania objektov:

operátor zvyšku pythonu

1) Upcasting

Upcasting je typ typového odlievania objektov, v ktorom a detský predmet je typizovaný na a objekt rodičovskej triedy . Pomocou funkcie Upcasting môžeme ľahko pristupovať k premenným a metódam rodičovskej triedy k triede podriadenej. Tu nemáme prístup ku všetkým premenným a metóde. Pristupujeme len k niektorým špecifikovaným premenným a metódam podradenej triedy. Upcasting je tiež známy ako Zovšeobecnenie a Rozšírenie .

UpcastingExample.java

 class Parent{ void PrintData() { System.out.println('method of parent class'); } } class Child extends Parent { void PrintData() { System.out.println('method of child class'); } } class UpcastingExample{ public static void main(String args[]) { Parent obj1 = (Parent) new Child(); Parent obj2 = (Parent) new Child(); obj1.PrintData(); obj2.PrintData(); } } 

Výkon:

Upcasting a Downcasting v Jave

2) Downcasting

Upcasting je ďalším typom typového obsadzovania objektov. V Upcasting priradíme objekt odkazu nadradenej triedy podradenej triede. V Jave nemôžeme priradiť objekt odkazu nadradenej triedy k podradenej triede, ale ak vykonáme downcasting, nedostaneme žiadnu chybu pri kompilácii. Keď ho však spustíme, vyhodí „ClassCastException“ . Teraz ide o to, ak downcasting nie je možný v Jave, prečo to potom kompilátor umožňuje? V jazyku Java nám niektoré scenáre umožňujú vykonávať downcasting. Tu sa na objekt podtriedy odkazuje rodičovská trieda.

tabuľku reakcií

Nižšie je uvedený príklad downcastingu, v ktorom sú vysvetlené platné aj neplatné scenáre:

DowncastingExample.java

linuxové príkazy, ktoré
 //Parent class class Parent { String name; // A method which prints the data of the parent class void showMessage() { System.out.println('Parent method is called'); } } // Child class class Child extends Parent { int age; // Performing overriding @Override void showMessage() { System.out.println('Child method is called'); } } public class Downcasting{ public static void main(String[] args) { Parent p = new Child(); p.name = 'Shubham'; // Performing Downcasting Implicitly //Child c = new Parent(); // it gives compile-time error // Performing Downcasting Explicitly Child c = (Child)p; c.age = 18; System.out.println(c.name); System.out.println(c.age); c.showMessage(); } } 

Výkon:

Upcasting a Downcasting v Jave

Prečo potrebujeme Upcasting a Downcasting?

V Jave používame len zriedka Upcasting . Používame ho, keď potrebujeme vyvinúť kód, ktorý sa zaoberá iba nadradenou triedou. Downcasting sa používa, keď potrebujeme vytvoriť kód, ktorý pristupuje k správaniu triedy dieťaťa.

Upcasting a Downcasting v Jave

Rozdiel medzi Upcasting a Downcasting

Toto sú nasledujúce rozdiely medzi Upcasting a Downcasting:

Áno nie Upcasting Downcasting
1. Podriadený objekt je pretypovaný na rodičovský objekt. Odkaz na objekt rodičovskej triedy sa odovzdá podradenej triede.
2. Upcasting môžeme vykonávať implicitne alebo explicitne. Implicitne downcasting nie je možný.
3. V podradenej triede môžeme pristupovať k metódam a premenným rodičovskej triedy. Je možné pristupovať k metódam a premenným oboch tried (rodičov a detí).
4. Máme prístup k niektorým špecifikovaným metódam detskej triedy. Všetky metódy a premenné oboch tried sú prístupné vykonaním downcastingu.
5. Rodič p = nový rodič () Rodič p = nové dieťa()
Dieťa c = (Child)p;