He estado haciendo uno de los ejercicios que mi profesor me ha mandado y resulta que al plantearme la lógica para resolver el problema, a mi me resulta lógico (no en todos los casos, pero en este si) hacer que una función según un valor que se le pasa o que lo tiene su clase, retorne un objeto de una clase distinta según ese valor. Eso java no lo permite ( y creo que muchos otros tampoco...) No se me ocurre por ahora una manera mas intuitiva para mi(o mejor dicho, personal, a mi estilo, que eso de intuitivo es algo que depende de cada uno ) de resolver el problema que tengo, el cual si queréis expongo, pero por ahora os pongo el código de prueba, aislado, que muestra exactamente lo que intento.
A ver si se os ocurre algo en esta forma de pensar, que me ayude a solucionar el problema. Según un valor tengo que asignar en una referencia a objeto de clase abstracta un objeto de una clase extendida de esa misma abstracta, pero esta devuelta desde una función.
Código
class Leer{ private int op; private OpBinaria obj; Leer(int op){ this.op = op; obj = obtObjeto(); } private OpBinaria obtObjeto(){ if(op == 1){ Suma suma = new Suma(); return suma; //Eclipse dice "NopeNope!" Tu dale OpBinaria :D } } } abstract class OpBinaria{ public int x, y; public abstract int op(); } class Suma extends OpBinaria { public int op(){ return x + y; } } class Resta extends OpBinaria { public int op(){ return x - y; } }