Ejemplo A es clase padre y B,C heredan de A
Se permite:
A a = new A();
A ab = new B(); //ref de tipo A pero invocando el constructor de B
A ac = new C();
Aquí cuando llamo un constructor es para crear una instancia.
El casteo es cuando se quiere manejar una ref que representa muchos tipos y se quiere manejar una sola referencia de manera especializada, es decir, se saca y se trabaja diferente
casteo ej:
B be = (B) ab; // saco la parte de B del elemento ab y se lo asigno a be, la parte que tengo de A no queda asociada con be.
Lo puedo hacer porque tengo un tipo A que se crea con un constructor tibo B; con el casteo puedo sacar la parte de B
Se expresa "es" cuando hay relación de herencia, por ej un cliente es una persona.
Se expresa "tiene" cuando existe instanciación de una clase en otra, por ej cuando un cliente está asociado a un vuelo
cuando una clase implementa otra, necesariamente debe hacer una sobre escritura de sus métodos
Correo docente: jfgutierez@gmail.com
Hola Seba, yo agregaría mas información referido al casteo implicito y explicito te dejo un link a un post que agregue referido a esto.
ResponderEliminarhttp://java-white-box.blogspot.com.ar/2013/12/javaplayer-casteos-en-java-casteo.html
Saludos