tag:blogger.com,1999:blog-2330324486466201518.post3829053531294709839..comments2022-03-30T00:28:48.461+02:00Comments on JavaBlog: Polimorfismo y herenciaAnonymoushttp://www.blogger.com/profile/14726324449337290251noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-2330324486466201518.post-20476380565509392302013-11-09T12:18:55.934+01:002013-11-09T12:18:55.934+01:00Hola, Anónimo.
Primero mis disculpas si no he expl...Hola, Anónimo.<br />Primero mis disculpas si no he explicado el tema con suficiente claridad.<br />Verás, Vampiro es hijo de Monstruo, por lo que puede heredar todos los métodos del mismo y modificarlos si lo necesita, además de añadir métodos nuevos. Pero Monstruo, como padre, no puede heredar métodos de sus hijos.<br />¿Porqué entonces utilizar Monstruo m = new Vampiro() en lugar de Vampiro v = new Vampiro? Pues eso depende de las necesidades que tenga cada programador. Imagina por ejemplo que tienes que crear un nuevo monstruo pero aún no estás seguro del tipo que necesitas: puedes hacer Monstruo m = new Vampiro() y luego en caso necesario transformar m en un new Zombie().<br />Ten en cuenta que aquí yo sólo explico lo que ocurre si haces una cosa u otra, no lo que tu tengas que hacer.<br />Personalmente creo que la utilización de subclases debe dejarse para necesidades muy concretas, y que siempre que se pueda es preferible la utilización de interfaces. Si estás interesado en el tema, te recomiendo el libro de Joshua Bloch "Effective Java", donde lo trata en un capítulo. No sé si hay versión en castellano.<br />Muchas gracias por leerme (¡un viernes de noche!) y un saludo.;-)Anonymoushttps://www.blogger.com/profile/14726324449337290251noreply@blogger.comtag:blogger.com,1999:blog-2330324486466201518.post-68914633327954116922013-11-09T01:36:08.236+01:002013-11-09T01:36:08.236+01:00Buenas noches, una preguntilla:
Monstruo m = new ...Buenas noches, una preguntilla:<br /><br />Monstruo m = new Vampiro();<br /><br />m podrá usar la versión de los métodos de la clase Vampiro que tenga la clase Monstruo, pero no un método que no exista en dicha clase, aunque sí en la clase Vampiro.<br /><br />m podrá usar la versión de los métodos de Vampiro que tenga Monstruo. Esto no se podría resumir con herencia simple?<br /><br />Por que si siempre la JVM va a utilizar los metodos de Vampiro, qué caso tiene crear una referencia Monstruo?<br /><br /><br />Saludos.Anonymousnoreply@blogger.com