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
Mostrando entradas con la etiqueta clase. Mostrar todas las entradas
Mostrando entradas con la etiqueta clase. Mostrar todas las entradas
miércoles, 21 de noviembre de 2007
Suscribirse a:
Entradas (Atom)