La herencia es uno de los mecanismos de la programación orientada a objetos, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad.
La herencia en Ruby se simboliza mediante el operador < .
#La clase "Luchador" contiene los datos que debe tener todo luchador, por ejemplo vida, fuerza,... De igual forma define acciones comunes a todos los luchadores, es decir, los metodos golpear, recibir_golpe,...
class Luchador
def initialize v, f, d, p, n
@vida = v
@fuerza_ataque = f
@defensa = d
@prob_ataque = p
@nombre = n
end
def golpear
(...)
end
def recibir_golpe x
(...)
end
def vivo?
(...)
end
end
#Todo boxeador es un luchador, por lo tanto tiene todas las características de un luchador, y a parte, características específicas de un boxeador. La herencia se denota con el operador "<", de modo que la clase "Boxeador" hereda de "Luchador": class Boxeador <>
En este caso, un boxeador se comporta de un modo determinado al recibir un golpe, por ese motivo se redefine el método "recibir_golpe".
class Boxeador < Luchador
def initialize n
#super llama al constructor de la clase Luchador
super 90, 15, 2, 0.3, n
end
def recibir_golpe x
(...)
end
end
#Todo karateca es un luchador, igual que en el caso anterior, tiene todas las #características de un luchador, y a parte, características específicas de un karateka.
En el caso del karateka, el modo de golpear es diferente, por eso se redefine el método "golpear".
class Karateka < Luchador
def initialize n
super 100, 10, 4, 0.5, n
end
def golpear
(...)
end
end
miércoles, 21 de noviembre de 2007
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario