Downcasting en Java

MD Aminul Islam 12 octubre 2023
  1. Downcasting en Java
  2. Error del compilador cuando intenta hacer downcast implícitamente
Downcasting en Java

Si está trabajando con Java, puede trabajar con TypeCasting, UpCasting o DownCasting. El propósito de su uso es convertir de un tipo a otro.

Esto puede ser con variables u objetos. Para un objeto, hay dos tipos de transformación disponibles.

El primero es de padre a hijo y el segundo es de hijo a padre.

Aquí, la conversión de Hijo a Padre se conoce como UpCasting, y la conversión de Padre a Hijo se conoce como DownCasting. Podemos realizar implícita o explícitamente el UpCasting, pero solo podemos realizar DownCasting de forma explícita.

En este artículo, veremos los detalles de DownCasting. Además, describiremos el tema mediante el uso de ejemplos y explicaciones necesarios para facilitar el tema.

Downcasting en Java

Ahora vamos a ver un ejemplo de DownCasting.

class ParentClass {
  String name;
  void showMessage() {
    System.out.print("Parent class method is called");
  }
}
class ChildClass extends ParentClass {
  int age;
  @Override
  void showMessage() {
    System.out.print("The child class method is called");
  }
}
class Downcasting {
  public static void main(String[] args) {
    ParentClass Parent = new ChildClass();
    Parent.name = "Alex";
    ChildClass Child = (ChildClass) Parent;

    Child.age = 21;
    System.out.print("Name:" + Child.name + " ");
    System.out.println("Age:" + Child.age);
    Child.showMessage();
  }
}

Expliquemos el código parte por parte. En primer lugar, creamos una clase principal llamada ParentClass, y luego creamos una clase secundaria llamada ChildClass y la extendimos con ParentClass.

En ChildClass, realizamos la anulación por @Override.

Después de eso, creamos otra clase llamada Downcasting, nuestra clase controladora. En la clase, creamos un objeto de ParentClass.

Luego proyectamos hacia abajo un objeto con la línea ChildClass Child = (ChildClass)Parent;.

Por último, imprimimos todos los datos. Ahora, después de ejecutar el programa Java anterior.

Obtendrá una salida como la siguiente.

Name:Alex Age:21
The child class method is called

Error del compilador cuando intenta hacer downcast implícitamente

En el ejemplo anterior, realizamos el downcasting explícitamente. Si intenta hacer downcast implícitamente, es posible que obtenga un error.

Mira el siguiente ejemplo en el que intentamos abatir implícitamente.

class ParentClass {
  String name;
  void showMessage() {
    System.out.print("Parent class method is called");
  }
}
class ChildClass extends ParentClass {
  int age;
  @Override
  void showMessage() {
    System.out.print("Child class method is called");
  }
}
class Downcasting {
  public static void main(String[] args) {
    ParentClass Parent = new ChildClass();
    Parent.name = "Alex";
    ChildClass Child = new ParentClass();

    Child.age = 21;
    System.out.print("Name:" + Child.name + " ");
    System.out.println("Age:" + Child.age);
    Child.showMessage();
  }
}

Si intenta compilar el programa anterior, obtendrá un error como el siguiente.

/tmp/AMCRVnDhlV/Downcasting.java:22: error: incompatible types: ParentClass cannot be converted to ChildClass
ChildClass Child = new ParentClass();
                           ^
1 error

Tenga en cuenta que DownCasting debe realizarse externamente. Al usar DownCasting, un objeto secundario puede obtener las propiedades de su objeto principal.

Tenga en cuenta que los ejemplos de código compartidos aquí están en Java y debe instalar Java en su entorno si su sistema no contiene Java.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn