logo

Upcasting i Downcasting a Java

Es coneix com a procés de conversió d'un tipus de dades a un altre Mecanografia i Upcasting i Descens és el tipus de tipografia d'objectes. A Java, l'objecte també es pot tipificar com els tipus de dades. Pare i Nen els objectes són dos tipus d'objectes. Per tant, hi ha dos tipus de tipografia possibles per a un objecte, és a dir, De pares a fills i Fill a pare o pot dir Upcasting i Descens .

En Java , l'objecte també es pot escriure com els tipus de dades. Pare i Objectes infantils són dos tipus d'objectes. Per tant, hi ha dos tipus de tipografia possibles per a un objecte, és a dir, De pares a fills i Fill a pare o pot dir Upcasting i Descens .

Mecanografia s'utilitza per assegurar si les variables són processades correctament per una funció o no. En Upcasting i Descens , escrivim un objecte fill a un objecte pare i un objecte pare a un objecte fill simultàniament. Podem realitzar Upcasting implícitament o explícitament, però el downcasting no pot ser implícitament possible.

Upcasting i Downcasting a Java

Aprofundim en aquests dos tipus de fosa d'objectes:

cadena invertida java

1) Upcasting

Upcasting és un tipus de tipografia d'objectes en què a objecte fill està tipificat a a objecte de classe pare . Mitjançant l'Upcasting, podem accedir fàcilment a les variables i mètodes de la classe pare a la classe secundària. Aquí, no accedim a totes les variables i al mètode. Accedim només a algunes variables i mètodes especificats de la classe fill. Upcasting també es coneix com Generalització i Ampliació .

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

Sortida:

Upcasting i Downcasting a Java

2) Descens

Upcasting és un altre tipus de tipografia d'objectes. A Upcasting, assignem un objecte de referència de classe pare a la classe secundària. A Java, no podem assignar un objecte de referència de classe pare a la classe secundària, però si fem una baixada, no obtindrem cap error en temps de compilació. Tanmateix, quan l'executem, llança el 'ClassCastException' . Ara la qüestió és que si la baixada no és possible a Java, per què ho permet el compilador? A Java, alguns escenaris ens permeten realitzar downcasting. Aquí, la classe pare fa referència a l'objecte de subclasse.

quadre d'alerta de javascript

A continuació es mostra un exemple de downcasting en què s'expliquen tant els escenaris vàlids com els no vàlids:

DowncastingExample.java

paraula clau volàtil 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(); } } 

Sortida:

Upcasting i Downcasting a Java

Per què necessitem Upcasting i Downcasting?

A Java, poques vegades fem servir Upcasting . El fem servir quan necessitem desenvolupar un codi que tracti només de la classe pare. Descens s'utilitza quan necessitem desenvolupar un codi que accedeixi als comportaments de la classe infantil.

Upcasting i Downcasting a Java

Diferència entre Upcasting i Downcasting

Aquestes són les següents diferències entre Upcasting i Downcasting:

S.No Upcasting Descens
1. Un objecte fill s'envia a un objecte pare. La referència de l'objecte de classe pare es passa a la classe secundària.
2. Podem realitzar Upcasting de manera implícita o explícita. Implícitament, la baixada no és possible.
3. A la classe fill, podem accedir als mètodes i variables de la classe pare. Es pot accedir als mètodes i variables de les dues classes (pare i fill).
4. Podem accedir a alguns mètodes especificats de la classe fill. Es pot accedir a tots els mètodes i variables d'ambdues classes realitzant downcasting.
5. Parent p = nou Parent() Pare p = fill nou ()
Nen c = (Nen)p;