logo

Upcasting y Downcasting en Java

Un proceso de conversión de un tipo de datos a otro se conoce como encasillamiento y Upcasting y abatido es el tipo de encasillamiento de objetos. En Java, el objeto también se puede encasillar como los tipos de datos. Padre y Niño Los objetos son dos tipos de objetos. Entonces, hay dos tipos de encasillamiento posibles para un objeto, es decir, Padre a hijo y Niño a padre o puedo decir Upcasting y abatido .

En Java , el objeto también se puede encasillar como los tipos de datos. Padre y Objetos infantiles Son dos tipos de objetos. Entonces, hay dos tipos de encasillamiento posibles para un objeto, es decir, Padre a hijo y Niño a padre o puedo decir Upcasting y abatido .

encasillamiento se utiliza para garantizar si las variables son procesadas correctamente por una función o no. En Upcasting y abatido , encasillamos un objeto hijo a un objeto padre y un objeto padre a un objeto hijo simultáneamente. Podemos realizar Upcasting de forma implícita o explícita, pero Downcasting no puede ser implícitamente posible.

Upcasting y Downcasting en Java

Profundicemos en estos dos tipos de lanzamiento de objetos:

programación por turnos

1) Actualización

Upcasting es un tipo de encasillamiento de objetos en el que un objeto hijo está encasillado en un objeto de clase padre . Al utilizar Upcasting, podemos acceder fácilmente a las variables y métodos de la clase principal a la clase secundaria. Aquí, no accedemos a todas las variables y al método. Accedemos solo a algunas variables y métodos específicos de la clase secundaria. Upcasting también es conocido como Generalización y Ampliación .

UpcastingExample.java

creando mesas en látex
 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(); } } 

Producción:

Upcasting y Downcasting en Java

2) abatimiento

Upcasting es otro tipo de encasillamiento de objetos. En Upcasting, asignamos un objeto de referencia de clase principal a la clase secundaria. En Java, no podemos asignar un objeto de referencia de clase principal a la clase secundaria, pero si realizamos una conversión a la baja, no obtendremos ningún error en tiempo de compilación. Sin embargo, cuando lo ejecutamos, arroja el 'Excepción ClassCast' . Ahora el punto es si el downcasting no es posible en Java, entonces ¿por qué el compilador lo permite? En Java, algunos escenarios nos permiten realizar downcasting. Aquí, la clase principal hace referencia al objeto de la subclase.

A continuación se muestra un ejemplo de abatimiento en el que se explican tanto los escenarios válidos como los no válidos:

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

Producción:

Upcasting y Downcasting en Java

¿Por qué necesitamos Upcasting y Downcasting?

En Java, rara vez usamos Upcasting . Lo usamos cuando necesitamos desarrollar un código que trate únicamente con la clase principal. abatido se usa cuando necesitamos desarrollar un código que acceda a los comportamientos de la clase secundaria.

Pete Davidson nacionalidad
Upcasting y Downcasting en Java

Diferencia entre Upcasting y Downcasting

Estas son las siguientes diferencias entre Upcasting y Downcasting:

S.No Upcasting abatido
1. Un objeto hijo se encasilla en un objeto padre. La referencia del objeto de la clase principal se pasa a la clase secundaria.
2. Podemos realizar Upcasting de forma implícita o explícita. Implícitamente no es posible abatir.
3. En la clase hija, podemos acceder a los métodos y variables de la clase padre. Se puede acceder a los métodos y variables de ambas clases (padre e hijo).
4. Podemos acceder a algunos métodos específicos de la clase secundaria. Se puede acceder a todos los métodos y variables de ambas clases realizando downcasting.
5. Padre p = nuevo Padre() Padre p = nuevo Niño()
Niño c = (Niño)p;