Postopek pretvorbe enega tipa podatkov v drugega je znan kot Prevajanje tipov in Prevajanje navzgor in Spuščanje je vrsta pretvorbe tipa objekta. V Javi lahko predmet tudi tipiziramo kot podatkovne tipe. starš in Otrok predmeti so dve vrsti predmetov. Za objekt sta torej možni dve vrsti tipskega preoblikovanja, tj. Starš otroku in Otrok staršem ali lahko rečem Prevajanje navzgor in Spuščanje .
notri Java , lahko objekt tudi tipiziramo kot podatkovne tipe. starš in Otroški predmeti sta dve vrsti predmetov. Torej sta za objekt možni dve vrsti tipskega preoblikovanja, tj. Starš otroku in Otrok staršem ali lahko rečem Prevajanje navzgor in Spuščanje .
Prevajanje tipov se uporablja za zagotovitev, ali funkcija pravilno obdeluje spremenljivke ali ne. notri Prevajanje navzgor in Spuščanje , tipkamo podrejeni objekt nadrejenemu objektu in nadrejeni objekt na podrejeni objekt istočasno. Upcasting lahko izvajamo implicitno ali eksplicitno, vendar downcasting ne more biti implicitno mogoč.
Potopimo se globlje v obe vrsti ulivanja predmetov:
ustvarjanje seznama v Javi
1) Upcasting
Prevajanje navzgor je vrsta pretvorbe tipa objekta, pri kateri a otroški predmet je tipizirano v a predmet nadrejenega razreda . Z uporabo upcastinga lahko enostavno dostopamo do spremenljivk in metod nadrejenega razreda v podrejeni razred. Tukaj ne dostopamo do vseh spremenljivk in metode. Dostopamo le do določenih spremenljivk in metod podrejenega razreda. Prevajanje navzgor je znan tudi kot Posploševanje in Razširitev .
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(); } }
Izhod:
2) Znižanje
Prevajanje navzgor je druga vrsta pretvorbe tipa objekta. Pri upcastingu podrejenemu razredu dodelimo referenčni objekt nadrejenega razreda. V Javi ne moremo dodeliti referenčnega objekta nadrejenega razreda podrejenemu razredu, vendar če izvedemo pretvorbo navzdol, ne bomo dobili nobene napake med prevajanjem. Vendar, ko ga zaženemo, vrže 'ClassCastException' . Bistvo je, če prevajanje ni mogoče v Javi, zakaj ga potem dovoljuje prevajalnik? V Javi nam nekateri scenariji omogočajo izvajanje pretvorbe navzdol. Tukaj se na predmet podrazreda sklicuje nadrejeni razred.
b plus drevo
Spodaj je primer znižanja, v katerem so razloženi veljavni in neveljavni scenariji:
DowncastingExample.java
2 proti 1 multiplekser
//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(); } }
Izhod:
Zakaj potrebujemo upcasting in downcasting?
V Javi redko uporabljamo Prevajanje navzgor . Uporabljamo ga, ko moramo razviti kodo, ki obravnava samo nadrejeni razred. Spuščanje se uporablja, ko moramo razviti kodo, ki dostopa do vedenja podrejenega razreda.
Razlika med upcastingom in downcastingom
To so naslednje razlike med upcastingom in downcastingom:
da ne | Prevajanje navzgor | Spuščanje |
---|---|---|
1. | Podrejeni objekt je tipiziran v nadrejeni objekt. | Referenca predmeta nadrejenega razreda se posreduje podrejenemu razredu. |
2. | Upcasting lahko izvedemo implicitno ali eksplicitno. | Implicitno znižanje ni mogoče. |
3. | V podrejenem razredu lahko dostopamo do metod in spremenljivk nadrejenega razreda. | Dostopate lahko do metod in spremenljivk obeh razredov (starša in otroka). |
4. | Dostopamo lahko do določenih metod podrejenega razreda. | Do vseh metod in spremenljivk obeh razredov je mogoče dostopati z izvajanjem nizanja. |
5. | Nadrejeni p = novi nadrejeni() | Nadrejeni p = nov otrok() Otrok c = (Otrok)p; |