Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: fedegaray en 04 de Mayo 2015, 01:22

Título: Interface Java definicion Ejercicio CU00696B ejemplo herencia múltiple en Java
Publicado por: fedegaray en 04 de Mayo 2015, 01:22
Sólo quedan 4!!!

Estas son mis respuestas a la entrega 96...


a) ¿Una clase puede heredar de dos clases en Java?

Java no admite herencia múltiple. Pero puede heredar de una clase e implementar una o varias interfaces, o sólo implementar interfaces.


b) ¿Una interface Java puede tener métodos que incluyan una sentencia while? ¿Una interface Java puede tener métodos que incluyan una sentencia System.out.println?

Ambos casos son imposibles, ya que los métodos de las interfaces no tienen cuerpo.


c) 1 - ¿Un objeto Java puede ser del tipo definido por una interface?

Los objetos en Java no pueden ser definidos por el tipo de una interface.

c) 2 - ¿Un objeto Java puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por una clase que no implementa la interface?

Esto no es posible

 c) 3- ¿Un objeto Java puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por una clase que implementa la interface?

Esto sí es posible ya que la clase que implementa la interface "hereda" sus normas de construcción, por lo que el objeto creado es tanto del tipo de la clase, como de la interface.
Título: Re:Ejercicio CU00696B - Concepto de interface y herencia múltiple en Java
Publicado por: Ogramar en 05 de Mayo 2015, 14:44
Hoola de nuevo, la pregunta a está bien la respuesta. La pregunta b) también. La pregunta c 1) hay que comentarla, una interface sí define un tipo. Java te permite que definas como tipo estático de un objeto una interface, por tanto un ojbeto puede ser del tipo definido por una interface.

Por ejemplo List<Profesor> listaDeProfesores = new ArrayList<Profesor> ();

Aquí el tipo estático de listaDeProfesores es List, que es una interface. El tipo dinámico es ArrayList, que es una clase concreta.

Java prohibe definir como tipo dinámico una interface, pero sí permite que el tipo estático sea una interface.

Imagina una declaración como List<Profesor> listaMaestros = new FedeList<Profesor> ();

Al leer este código interpretamos lo siguiente: se ha declarado un objeto de tipo estático List y tipo dinámico FedeList. La clase FedeList implementa la interface List (si no fuera así no se permitiría esta declaración). ¿Qué significa que la clase implementa la interface? Que tendrá definidos todos los métodos que define la interface, de ese modo sabemos que la clase FedeList tendrá el método add, size, etc. aunque no hayamos visto el código de la clase.

La pregunta c 2) está bien

La pregunta c 3) está bien

Salu2!!!
Título: Re:Interface Java definicion Ejercicio CU00696B ejemplo herencia múltiple en Java
Publicado por: fedegaray en 05 de Mayo 2015, 15:02
Importante aclaración Ogramar, gracias por "desconfundirme"!! Había entendido mal el asunto.  Me había confundido con esto de que no se puede crear un objeto definido por una interface, pero claro, no estábamos hablando de un objeto sino de un tipo, y la interface sí define tipos.
Lo he releído y me ha quedado más claro. Muchas gracias