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; } }





Autor




En línea



)