Aufruf der Methode in der Elternklasse von Unterklassenmethoden in Ruby
Ich habe super
zu initialisieren übergeordneten Klasse, aber ich sehe keinen Weg, der den Aufruf von parent-Klasse aus der Unterklasse Methoden.
Ich weiß, PHP und anderen Sprachen zu tun haben, diese Funktion aber nicht finden können, ein guter Weg, dies zu tun bei Ruby.
Was würde man in dieser situation tun?
InformationsquelleAutor der Frage Passionate Developer | 2013-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die Methode mit dem gleichen Namen, d.h. Sie sind eine Methode überschreibt, kann man einfach
super
. Ansonsten können Sie einealias_method
oder eine Bindung.InformationsquelleAutor der Antwort Mark Meyer
Den
super
- Schlüsselwort ruft eine Methode mit dem gleichen Namen in der super-Klasse:InformationsquelleAutor der Antwort maerics
Den
super
Schlüsselwort in Ruby tatsächlich ruft eine Methode mit dem gleichen Namen in der übergeordneten Klasse. (Quelle)InformationsquelleAutor der Antwort Graham Swan
Andere gesagt haben es schon gut. Nur eine zusätzliche Anmerkung von Vorsicht:
Die syntax
super.foo
zu nennen-Methodefoo
in der super-Klasse ist nicht unterstützt. Vielmehr rufen diesuper
-Methode und auf das zurückgegebene Ergebnis, versuchen Sie, rufen Siefoo
.InformationsquelleAutor der Antwort Christopher Oezbek
self.class.superclass == Parent #=> true
Parent.parent_method
undself.class.superclass
rufenself.parent_method
(Klasse, Methode)Parent
währendsuper
ruft dieparent_method
(Instanzmethode) vonParent
.InformationsquelleAutor der Antwort Aravind Vemula