Hola,
imaginaos este codigo:
public class Y
{
...
}
public class Z extends Y
{
...
}
abstract public class A
{
public abstract void metodo1(Y y);
}
public class B extends A
{
@ Override
public void metodo1(Y y)
{
Z z = (Z)y;
.....
}
}
...
...
public static void main(String[] args)
{
B b= new B();
Z z = new Z();
b.metodo1(z);
}
Funciona OK ¿verdad?
¿Pero no hay alguna forma de evitar el casting Z z = (Z)y?
Ya se que si sobreescribes un metodo el tipo de argumentos han de ser del mismo tipo. Pero en este caso yo quiero pasarle un argumento Z que extiende de Y. Y dentro del metodo1 he de hacer casting..
¿¿No puede solucionarse esto mediante GENERICS y evitarme el casting???
Saludos