Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/12/2018, 22:32
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: variables de interface

No tengo claro tu duda, pero creo qiue tiene que ver con que al parecer crees que no se pueden instanciar las interfaces y te resulta por lo tanto raro ver que haya funciones que devuelvan un objeto de un tipo que sea una interface.

Sera esa la duda?

Si es esa la duda, entonces tengo una respuesta que podria servirte.

La interface efectivamente no puede instanciarse, esa creencia es correcta.
Las clases declaran implementar una interface, y las clases si pueden instanciarse;
Los objetos de esa clase, porque la clase declaro que implementaba la interfaz, tienen disponibles los metodos que la interface indico'. Pueden tener mas, pero seguro que tienen los que la interface indico'.

Entonces si tienes una interfaz I y una clase C que implementa I, y creas un objeto

C objetoC = new C();

entonces tambien es completamente posible escribir esto, en vez de lo anterior:

I objetoI = new C();

con ello, hay 2 cosas, una dicha al lado izquerdo y otra al lado derecho.
Al lado derecho es la creacion del objeto mismo, no hay duda es de tipo C. Pero C implementa I, vamos al lado izquierdo, "objetoI" ahora se trata de la interfaz nada mas, entonces "objetoI", para este caso, solo sera capaz de ver lo que la interfaz I provea, al usar la referencia "objetoI".

La creacion de los objetos esta al lado derecho, al lado izquierdo son referencias nada mas.

No hay nada malo en considerar los objetos con una mirada restringida como la de las interface y creo que esto es lo que esta detras de la duda que planteas.

Si no es asi, no acerte' :(
__________________
Visita mi perfil en LinkedIn