si un metodo retorna un dato interfaceejemplo, lo que va a retornar enrealidad es un objeto de una clase que implemente la interface no? pero se puede poner q el valor de retorno es una interface por el polimorfismo? estoy bien? :P
el codigo q me hizo dudar es este :
Código:
interface InterfaceEjemplo {
public void metodoUno();
public void metodoDos();
}
class ClaseContenedora {
public InterfaceEjemplo metodo(boolean flag) {
InterfaceEjemplo i = null;
if (flag) {
class ClaseInternaLocalUno implements InterfaceEjemplo {
public void metodoUno() {
System.out.println("ClaseContenedora.ClaseInternaLocalUno.metodoUno()"); }
public void metodoDos() {
System.out.println("ClaseContenedora.ClaseInternaLocalUno.metodoDos()"); }
}
i = new ClaseInternaLocalUno();
}
else {
class ClaseInternaLocalDos implements InterfaceEjemplo {
public void metodoUno() {
System.out.println("ClaseContenedora.ClaseInternaLocalDos.metodoUno()"); }
public void metodoDos() {
System.out.println("ClaseContenedora.ClaseInternaLocalDos.metodoDos()"); }
}
i = new ClaseInternaLocalDos();
}
return i;
}
}
public class Main03 {
public static void main(String[] args) {
ClaseContenedora cc = new ClaseContenedora();
InterfaceEjemplo i = cc.metodo(true);
i.metodoUno();
i.metodoDos();
i = cc.metodo(false);
i.metodoUno();
i.metodoDos();
}
}
/*
SALIDA:
ClaseContenedora.ClaseInternaLocalUno.metodoUno()
ClaseContenedora.ClaseInternaLocalUno.metodoDos()
ClaseContenedora.ClaseInternaLocalDos.metodoUno()
ClaseContenedora.ClaseInternaLocalDos.metodoDos()
*/
]
de la pagina q me paso fuzzy
http://javierrguez.wordpress.com/201...ases-internas/