Autor Tema: Interface Java definicion Ejercicio CU00696B ejemplo herencia múltiple en Java  (Leído 3112 veces)

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
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.
« Última modificación: 05 de Mayo 2015, 14:46 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
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!!!

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".