Casting de objetos en Java

Hola a todos, hoy os voy a explicar como podemos hacer casting de objetos.

Ya vimos el tema del casting entre tipos primitivos, en objetos tambien podemos hacer castings.

Igual que en el de tipos, los objetos deben ser compatibles entre sí, por ejemplo una clase hija y una clase padre.

La mayor utilidad de los castings de objetos es cuando necesitamos que sea de un objeto en concreto, ya que si es del tipo de la clase padre, no podrá llamar a los métodos propios de la clase hija.

Veamos nuestras clases:

Empleado

Comercial

Repartidor

Clase ejecutable

Fijaros en las clases Repartidor y Comercial, les he puesto un método que es único en cada uno. Bien, ahora mira en la clase ejecutable y fijate que meto 3 objetos en un array Empleado, cada uno de ellos ahora estan enmascarados como si fuera un Empleado por lo que no podran llamar a ese método único.

Dentro del bucle, uso instanceof para asegurme que el objeto sea del tipo que yo quiero castear. Si lo es puedo hacer el casting sin problemas:

Como resumen, los casting son útiles cuando queremos llamar a métodos propios de un objeto que esta en otra clase compatible. Por último, te recomiendo utilizar polimorfismo para evitar en todo lo posible el casting, siempre que se pueda.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

4 comentarios

  1. Ramon Taboada

    Un par de errores, me parece a mi, por el copiar y pegar. Los caracteres ‘>’: mayor e igual’ e ‘&’: amperstand. En html estos aparecen como > y &

  2. Ramon Taboada

    Tal cual lo que pensé, html hizo la traducción de lo que escribí….

  3. Ramon Taboada

    Está bien el ejemplo, se podría mejorar la didáctica con un digrama de clases para ver gráficamente las relaciones de herencia y asociación.

  4. ale

    Tengo problemas con este codigo, alguien me puede ayudar?

    /**
    * Ejercicio 1
    *
    * Completar este programa que muestra el número de ocurrencias de cada caracter en una cadena
    * programando el método contadorLetras y aquellos otros que se consideren necesarios.
    *
    * Solo se trabaja con las minúsculas (a-z) sin incluir la ñ.
    *
    */
    public class Ejercicio1 {

    ////////////////// INCLUIR AQUÍ EL CÓDIGO NECESARIO ////////////

    /**
    * Programa principal
    *
    * ¡¡¡ No modificar este método !!!
    *
    * @param args
    */
    public static void main(String[] args) {
    String cadena = «al alba, al alba»;
    System.out.println(«La cadena \»» + cadena + «\» tiene los siguientes caracteres:»);
    int[] ocurrencias = contadorLetras(cadena);
    for (char c = ‘a’; c <= 'z'; c++) {
    System.out.println(c + " : " + ocurrencias[c – 'a'] + " ocurrencias");
    }

    }

    }

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539