Gewusst wie: Verwenden von Vererbung in Ruby

October 15

Vererbung ist der Kern der objektorientierten Programmierung. Baukonstruktionen Klasse macht kleinere Programme einfach und große Programme möglich. In Ruby ist Vererbung verwendet, um eine Beziehung zwischen Klassen erstellen, die im Code verwendet werden kann. Wenn eine Klasse eine Art von einer anderen Klasse ist, können Sie Vererbung "untergeordneten Klassen" machen. Beispielsweise müssen Sie möglicherweise eine Shape-Klasse. Untergeordnete Klassen der Shape-Klasse zu machen, bedeutet wie ein Kreis oder Quadrat-Klasse, eine Methode, die eine Form-Argument akzeptiert auch einen Kreis als eine Art Form nehmen könnte.

Anweisungen

Verwenden von Vererbung in Ruby

1 Beginnen Sie mit einer base (oder "super") Klasse. Im folgenden Beispiel wird eine Klasse namens Mikrowelle: 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 Schreiben Sie eine Anweisung der geerbten Klasse. Dies ist das gleiche wie eine normale Klasse Erklärung, aber fügt der "< Superclass" Komponente. Wenn Sie sehen "Klasse ChildClass < Superklasse", es bedeutet "Klasse ChildClass, die von übergeordneten Klasse erbt." Hier wird Vererbung verwendet, um einen Timer der Mikrowelle-Klasse hinzufügen: class TimedMicrowave < Microwave end

3 Der Klasse neue Methoden hinzufügen. Die Klasse werden alle Methoden der Oberklasse, auch keine zusätzlichen Methoden, die Sie hinzufügen. Sie können auch neue Member-Variablen und Attr_-Accessoren hinzugefügt: class TimedMicrowave < Microwave attr_reader :timerdef set_timer(seconds) @timer = seconds end def clear_timer @timer = 0 end end

4 Überschreiben Sie Methoden in der Oberklasse mit neuen Methoden. Da im vorherigen Beispiel ein Timer der Mikrowelle hinzugefügt wurde, kann eine Turn_on-Methode, die automatisch die Mikrowelle ausgeschaltet wird jetzt umgesetzt werden. Definieren Sie einfach eine Methode mit dem gleichen Namen wie die Methode in der Oberklasse. Wenn es aufgerufen wird, wird die Methode in der Kindklasse den aus der Oberklasse überschrieben. Hier kann jeder Code, der rechnet mit einem Mikrowellen-Objekt ein TimedMicrowave-Objekt verwenden: 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

Tipps & Warnungen

  • Haben Sie mehr als eine Person an einem bestimmten Programm arbeiten, sollten denken Sie wohlgemerkt nicht alles nach den Operator "#" als Teil des Codes. Diese Notizen sollen Leitlinien für Programmierer geben.