Cambios de lógica

Resulta que ser groso estaba siendo demasiado fácil, y queremos cambiar la condición para cualquier maestro para ser groso. ¡Qué bueno que ahora está definido en un solo lugar!

Un maestro esGroso cuando su habilidad es mayor a 5 y además su poder es mayor a 1000.

Tené en cuenta que lo esperado para cada tipo de maestro es que calcule su poder como lo venía haciendo hasta ahora.

En base a tu última solución, realizá los cambios necesarios para cumplir con lo pedido.

¡Dame una pista!

Si te preguntás cuál podría ser una implementación razonable para el método poder() en la clase Maestro, ¡¡es una gran pregunta!! Cuando no tenemos una implementación que podamos generalizar, podemos declarar métodos abstractos en las superclases.

Los métodos abstractos se definen como un método común, pero sin cuerpo. Luego, sus subclases pueden aportar su implementación como lo venían haciendo, pero agregando la palabra clave override para explicitar que no es coincidencia que estén declarando un método cuyo nombre coincide con uno definido por su superclase.

Por ejemplo:

class Animal {
  // este método no tiene definición, es abstracto
  method hacerRuido()
}
class Gato inherits Animal {
  override method hacerRuido() {
    return "Miau!!"
  }
}

¡Importante! Si una clase tiene métodos sin implementación, no la vamos a poder instanciar. Decimos que es una clase abstracta.

Tenés que iniciar sesión antes de empezar a enviar tus soluciones