Sobes.tech
Junior

¿Qué es el casting en Java?

sobes.tech AI

Respuesta de la IA

La conversión de tipos (casting) en Java es la transformación del valor de un tipo de datos a otro.

Tipos de conversión:

  • Casting explícito (Explicit Casting): Se realiza por el programador usando el operador (tipo). Se usa para convertir de un tipo "mayor" a uno "menor" (por ejemplo, de double a int). Puede provocar pérdida de datos.
    // conversión implícita (automática)
    int a = 10;
    double b = a; // int a double
    
    // conversión explícita (declarada)
    double c = 10.5;
    int d = (int) c; // double a int, d será igual a 10
    
  • Conversión implícita (Implicit Casting / Widening Conversion): La realiza automáticamente la JVM cuando se convierte de un tipo "menor" a uno "mayor" (por ejemplo, de int a double). Es segura y no provoca pérdida de datos.
    int x = 10;
    double y = x; // int convertido automáticamente a double
    

La conversión de tipos puede ser entre tipos primitivos o entre tipos de objetos en una jerarquía de herencia.

Para la conversión de tipos de objetos:

  • Upcasting: Convertir una subclase a su superclase. Es implícito y seguro.
    class Animal {}
    class Dog extends Animal {}
    
    Animal animal = new Dog(); // Upcasting
    
  • Downcasting: Convertir una superclase a su subclase. Requiere una conversión explícita y puede lanzar ClassCastException en tiempo de ejecución si el objeto en realidad no es una instancia de la subclase objetivo.
    Animal animal = new Dog(); // Upcasting
    
    // Downcasting - requiere conversión explícita y comprobación con instanceof
    if (animal instanceof Dog) {
        Dog dog = (Dog) animal;
        // Ahora se pueden usar métodos específicos de Dog
    }