logo

Upcasting és Downcasting Java nyelven

Az egyik adattípus másikra konvertálásának folyamatát ún Typecasting és Upcasting és Lehúzás az objektumtípusküldés típusa. A Java-ban az objektum is típusolvasható, mint az adattípusok. Szülő és Gyermek az objektumok kétféle objektum. Tehát egy objektum esetében kétféle típusú szövegírás lehetséges, azaz Szülőtől gyermekig és Gyermek a szülőnek vagy mondhatja Upcasting és Lehúzás .

Ban ben Jáva , az objektum az adattípusokhoz hasonlóan típusolvasható is. Szülő és Gyermek tárgyak kétféle objektumról van szó. Tehát egy objektum esetében kétféle típusú szövegírás lehetséges, azaz Szülőtől gyermekig és Gyermek a szülőnek vagy mondhatja Upcasting és Lehúzás .

Typecasting arra szolgál, hogy megbizonyosodjon arról, hogy egy függvény megfelelően feldolgozza-e a változókat vagy sem. Ban ben Upcasting és Lehúzás , gépelünk egy utódobjektum egy szülőobjektumhoz és szülőobjektum egy gyermekobjektumhoz egyidejűleg. Az Upcastingot implicit módon vagy explicit módon végezhetjük, de a downcasting implicit módon nem lehetséges.

Upcasting és Downcasting Java nyelven

Merüljünk el mélyebben mindkét ilyen típusú tárgyöntésben:

bájtok a python karakterlánchoz

1) Upcasting

Upcasting az objektumtípus-casting egyik típusa, amelyben a gyermek objektum típusba van írva a szülő osztály objektum . Az Upcasting használatával könnyen elérhetjük a szülő osztály változóit és metódusait a gyermekosztályhoz. Itt nem férünk hozzá az összes változóhoz és a metódushoz. A gyermekosztálynak csak néhány meghatározott változójához és metódusához férünk hozzá. Upcasting néven is ismert Általánosítás és Szélesedés .

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(); } } 

Kimenet:

Upcasting és Downcasting Java nyelven

2) Downcasting

Upcasting az objektumtípus-küldés egy másik típusa. Az Upcastingban egy szülő osztály hivatkozási objektumot rendelünk a gyermekosztályhoz. Java-ban nem rendelhetünk szülő osztály hivatkozási objektumot a gyermekosztályhoz, de ha downcastingot hajtunk végre, akkor nem kapunk fordítási idejű hibát. Amikor azonban futtatjuk, dobja a „ClassCastException” . Na most az a lényeg, hogy ha Java-ban nem lehetséges a downcasting, akkor miért engedi meg a fordító? Java-ban bizonyos forgatókönyvek lehetővé teszik számunkra a downcasting végrehajtását. Itt az alosztály objektumra a szülőosztály hivatkozik.

java lista üres

Az alábbiakban egy példa látható a downcastingra, amelyben mind az érvényes, mind az érvénytelen forgatókönyvet ismertetjük:

DowncastingExample.java

hogyan alakítsuk át az int-t string-be java
 //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(); } } 

Kimenet:

Upcasting és Downcasting Java nyelven

Miért van szükségünk Upcasting és Downcasting?

Java nyelven ritkán használjuk Upcasting . Akkor használjuk, ha olyan kódot kell kifejlesztenünk, amely csak a szülő osztállyal foglalkozik. Lehúzás akkor használatos, ha olyan kódot kell kifejlesztenünk, amely hozzáfér a gyermekosztály viselkedéseihez.

Upcasting és Downcasting Java nyelven

Az Upcasting és a Downcasting közötti különbség

A következő különbségek az Upcasting és a Downcasting között:

Igen nem Upcasting Lehúzás
1. Az utódobjektumot a rendszer egy szülőobjektumhoz írja át. A szülő osztály objektum hivatkozása átadásra kerül a gyermekosztálynak.
2. Az Upcasting-ot implicit vagy explicit módon végezhetjük. Implicit Downcasting nem lehetséges.
3. A gyermek osztályban a szülő osztály metódusait, változóit érhetjük el. Mindkét osztály (szülő és gyermek) metódusai és változói elérhetők.
4. Hozzáférhetünk a gyermekosztály néhány meghatározott metódusához. Mindkét osztály összes metódusa és változója elérhető downcasting végrehajtásával.
5. Szülő p = új szülő() Szülő p = új gyermek()
Gyermek c = (Child)p;