Tecnología

Inicio

Cómo utilizar la herencia en Ruby

La herencia es el núcleo de la programación orientada a objetos. las estructuras de clase de construcción hace que los programas más pequeños fácil, y programas grandes posible. En Ruby, la herencia se utiliza para crear una relación entre las clases que se pueden utilizar en el código. Cuando una clase es un tipo de una clase diferente, puede utilizar la herencia para que "las clases hijas". Por ejemplo, es posible que tenga una clase Shape. De las clases de los niños de la clase Shape, como un círculo o una clase de la plaza, se refiere a un método que toma la forma de un argumento también podría tomar un círculo como un tipo de forma.

Instrucciones

Utilizar la herencia en Ruby

1 Comience con una base (o "super") de clase. En el siguiente ejemplo se utiliza una clase denominada Microondas:
class Microwave
def put_food_in(food)
@food = food
enddef take_food_out
food = @food
@food = nil
return food
enddef turn_on
puts "Microwave is on"
end def turn_off
puts "Microwave is off"
end
end

2 Escribir una declaración de clase heredada. Este es el mismo como una declaración de clase normal, pero añade el componente "<Superclass". Cuando vea "clase ChildClass <superclase", que significa "la clase que hereda de ChildClass superclase." Aquí, la herencia se utiliza para añadir un temporizador a la clase de microondas:
class TimedMicrowave < Microwave
end

3 Añadir nuevos métodos a la clase. La clase tendrá todos los métodos de la superclase, así como cualquiera de los métodos adicionales que se agregan. También puede añadir nuevas variables miembro y attr_ descriptores de acceso *:
class TimedMicrowave < Microwave
attr_reader :timerdef set_timer(seconds)
@timer = seconds
end def clear_timer
@timer = 0
end
end

4 Reemplazar los métodos de la superclase con nuevos métodos. Dado que en el ejemplo anterior se añadió un temporizador para el horno de microondas, un método turn_on que convertirá automáticamente el microondas fuera ahora puede ser implementado. Basta con definir un método con el mismo nombre que el método de la superclase. Cuando se llama, el método en la clase hija anulará el método de la superclase. Aquí, cualquier código que espera ver un objeto de microondas puede utilizar un objeto TimedMicrowave:
class TimedMicrowave < Microwave
attr_reader :timerdef set_timer(seconds)
@timer = seconds
enddef clear_timer
@timer = 0
enddef turn_on
while @timer > 0
puts "Microwave is on. #{@timer} second(s) remaining."
@timer -= 1
sleep 1
end# We're done cooking, turn the microwave off
turn_off
end
end

Consejos y advertencias

  • Si usted tiene más de una persona que trabaja en un programa específico, tenga en cuenta que no debe considerar cualquier cosa que siga el operador "#" como parte del código. Estas notas están destinadas a orientar a los programadores.