Hola, en este test tengo un problema con la inicialización de el Hacha Templada. Yo tengo tres clases, Herrero, Hacha y HachaTemplada ( que es hijo de Hacha). Mi problema es que cuando hago hacha := herrero templar: hacha el hacha templada que me devuelve ejecuta el initialize de la clase Hacha y me reinicia los valores de durabilidad, lo cual provoca que el test falle. Como hago para que HachaTemplada no ejecute el initialize de la clase de la que esta heredando?
Hola Joaquín:
Hola, en este test tengo un problema con la inicialización de el Hacha Templada. Yo tengo tres clases, Herrero, Hacha y HachaTemplada ( que es hijo de Hacha). Mi problema es que cuando hago hacha := herrero templar: hacha el hacha templada que me devuelve ejecuta el initialize de la cl
Por favor no compartas parte de la solución de tu TP de manera pública. Lamentablemente tampoco podemos responderte cómo resolverlo. Si tenés una duda concreta sobre Pharo o modelado te recomiendo plantear la pregunta sobre algún ejercicio de la guía o cualquier otro ejemplo.
Como hago para que HachaTemplada no ejecute el initialize de la clase de la que esta heredando?
La manera de hacer eso es sobreescribiendo la implementación del método initialize en la clase hija. Esto no significa que sea recomendable hacerlo desde el punto de vista del diseño orientado a objetos. Tené en cuenta que por lo general es preferible usar delegación antes que herencia y que deben cumplirse ciertas condiciones para que la relación de herencia sea adecuada. Además podés hacer uso de mensajes de clase a modo de constructores que podrían resultarte útiles.
Saludos,
Tomás