La herencia es el núcleo de la programación orientada a objetos. Construir estructuras de clase hace posible programas pequeños programas sencillos y grandes. En Ruby , la herencia se utiliza para crear una relación entre 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 , usted podría tener una clase Shape. De las clases de los niños de la clase Shape , como un círculo o una clase Square, significa un método que toma un argumento de la forma también podría tomar un círculo como un tipo de forma. Instrucciones Usa Herencia en Ruby
1
Comience con una base ( o " super" ) de clase. El siguiente ejemplo utiliza una clase llamada Microondas: clase Microwavedef put_food_in (alimentación ) @ comida = foodenddef take_food_outfood = @ @ alimento alimentos = nilreturn foodenddef turn_onputs " microondas es el " end def turn_off pone " microondas es apagado" endend
2
Escriba una declaración de la clase heredada . Esto es lo mismo que una declaración de clase normal, pero añade la "clase TimedMicrowave final
3
agregar nuevos métodos a la clase. La clase tendrá todos los métodos de la superclase , como . así los métodos adicionales que se agregan también puede añadir nuevas variables miembro y attr_ * accesores : clase TimedMicrowave attr_reader : timerdef set_timer ( segundos ) @ temporizador = secondsend def clear_timer @ timer = 0endend
4 métodos de reemplazo
en la superclase con nuevos métodos. Dado que en el ejemplo anterior, un contador de tiempo esta en el horno de microondas , un método prender que convertirá automáticamente el microondas apagado ahora puede ser ejecutado . Simplemente define un método con el mismo nombre que el método en la superclase. Cuando se llama el método de la clase hijo reemplazar el método de la superclase Aquí, cualquier código que espera ver un objeto de microondas puede utilizar un objeto TimedMicrowave : . clase TimedMicrowave attr_reader : timerdef set_timer ( segundos ) @ timer = secondsenddef clear_timer @ timer = 0enddef turn_onwhile @ temporizador > 0puts Microondas " está encendido. # { @ } temporizador segundo ( s ) restante " @ temporizador - . = 1sleep 1end # Ya hemos terminado la cocción , apague el horno de microondas offturn_offendend