Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Dan_SB en 27 de Abril 2015, 22:28
-
Buenas tardes!
Vengo a resolver el ejercicio 96° del curso, donde se nos pregunta lo siguiente:
a) ¿Una clase puede heredar de dos clases en Java?
Si puede, usando una interface (herencia múltiple). Si hablas de solo usar extends, pues no es posible
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?
No es posible, las interface no tienen cuerpo (¿Entonces que heredarían si no puedo colocar metodos?... puras variables estáticas? ???)
c) ¿Un objeto Java puede ser del tipo definido por una interface? ¿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? ¿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?
1) Si es posible
2) No es posible
3) Si es posible
Esperare sus comentarios para aclarar esa duda!, estuve leyendo en otra pagina sobre un tipo que dijo lo siguiente:
Conclusión: ¿Se debe utilizar la herencia múltiple? A mi forma de pensar, si no está implementada nativamente, se debería de evitar el uso de una simulación que va en contra de la naturaleza del lenguaje. Además pienso que todo problema que o esquema de clases se pueden llegar a plantear de forma que solamente utilicemos la herencia simple, ya que es más sencilla y es más natural que se herede de un solo padre.
¿Que opinan de eso?
-
Hola Dan
Para la pregunta a) la respuesta más exacta es que no: no puede heredar siguiendo el concepto de herencia java. Lo que puede es implementar varias interfaces, que podríamos ver como una forma de herencia limitada. Tu respuesta es correcta, pero ten en cuenta que java no admite herencia múltiple: java lo que admite es que una clase implemente múltiples interfaces. Esto no es herencia múltiple, sino lo más parecido a la herencia múltiple que permite java. Otros lenguajes sí permiten herencia múltiple.
b) Es correcta
c) Correcta
Sobre la conclusión. Java no admite la herencia múltiple, por tanto no la podemos utilizar ni aunque quisiéramos. Respecto a implementar más de una interface en una clase, no es habitual pero es posible. Lo haremos sólo cuando justificadamente sea necesario. Si justificadamente es necesario, no hay problema en utilizar esta práctica.
Saludos