Vererbung ist der Kern der objektorientierten Programmierung . Baustoffklasse Strukturen macht kleinere Programme einfach und große Programme möglich . In Ruby wird Vererbung verwendet, um eine Beziehung zwischen Klassen, die in Ihrem Code verwendet werden können . Wenn eine Klasse eine Art von einer anderen Klasse ist , können Sie mit Vererbung zu " Kind-Klassen " zu machen. Zum Beispiel , haben Sie vielleicht eine Shape-Klasse . Machen Kind-Klassen der Shape-Klasse , wie ein Kreis oder ein Quadrat Klasse bedeutet eine Methode, die eine Form Argument könnten auch einen Kreis als eine Art der Form. Anleitung Rabatt Inheritance in Ruby
1
Beginnen Sie mit einer Basis ( oder "super" )-Klasse. Im folgenden Beispiel wird eine Klasse namens Mikrowelle: Klasse Microwavedef put_food_in (Lebensmittel) @ food = foodenddef take_food_outfood = @ food @ food = nilreturn foodenddef turn_onputs " Mikrowelle ist auf " end def turn_off puts " Mikrowelle ist off" endend
2
schreiben geerbten Klasse Statement. Dies ist das gleiche wie eine normale Klasse Aussage , fügt aber hinzu, die "class TimedMicrowave Ende
3
Hinzufügen neuer Methoden, um die Klasse. Die Klasse wird alle Methoden der Oberklasse haben , wie . auch zusätzliche Methoden, die Sie hinzufügen, können Sie auch neue Member-Variablen und attr_ * Zugriffsmethoden : class TimedMicrowave attr_reader : timerdef set_timer ( Sekunden) @ timer = secondsend def clear_timer @ timer = 0endend
4
Override Methoden in der Oberklasse mit neuen Methoden . da im vorherigen Beispiel wird ein Timer in der Mikrowelle, eine Methode, die turn_on schaltet sich automatisch aus der Mikrowelle können nun umgesetzt werden. definieren Sie einfach eine Methode mit dem gleichen Namen wie die Methode in der Superklasse aufgenommen. wenn es heißt , wird das Verfahren in der Kind-Klasse überschreibt die Methode von der Superklasse Hier ein Code, der eine Mikrowelle Objekt zu sehen erwartet eine TimedMicrowave Objekt verwenden : . Klasse TimedMicrowave attr_reader : timerdef set_timer ( Sekunden) @ timer = secondsenddef clear_timer @ timer = 0enddef turn_onwhile @ timer> 0puts "Microwave ist. # { @ } Timer Sekunde (n) noch "@ Timer - . = 1sleep 1end # Wir Kochen fertig sind, schalten Sie die Mikrowelle offturn_offendend