[RUBY] Über die Ahnenmethode

Das Buch enthielt nützliche Informationen zur Ahnenmethode, daher habe ich sie zusammengefasst.

Anerkennung bisher



class Mountains
end

class Nepal  < Mountains
  def everest_place
    "nepal"
  end
end

  p Nepal.ancestors
  p Nepal.class.superclass.superclass.superclass

Ausgabeergebnis



[Nepal, Mountains, Object, Kernel, BasicObject]
BasicObject

Es ist unpraktisch, die Vererbungsbeziehung einzeln mit Superklasse zu verfolgen. Ich erkannte, dass es praktisch wäre, die Vorfahrenmethode zu verwenden, um alles von der aktuellen Klasse bis zu BasicObject als Array abzurufen. (Einschließlich Module)

Neue Anerkennung



module World
 def everest_place
  "china"
 end
end

class Mountains
 def everest_place
  "india"
 end
end

class Nepal < Mountains
  include World
 def everest_place
   "nepal"
 end
end

p Nepal.ancesters

nepal = Nepal.new
puts nepal.everest_place

Wie oben beschrieben, ❶ Die Nepal-Klasse enthält das World-Modul, sodass Sie die everest_place-Methode des World-Moduls verwenden können. ❷ Da die Nepal-Klasse die Mountains-Methode erbt, kann auch die everest_place-Methode der Moutains-Klasse verwendet werden.

** Angenommen, Sie haben drei everest_place-Methoden, einschließlich der everest_place-Methode in der Nepal-Klasse ** Natürlich ändert sich die Ausgabe abhängig davon, welche everest_place-Methode aufgerufen wird.

Die Vorfahrenmethode ist in solchen Fällen nützlich. Betrachtet man die Ausgabe von p Nepal.ancestors,

Nepal.Ausgabeergebnis der Vorfahren


[Nepal, World, Mountains, Object, Kernel, BasicObject]

Es wird angezeigt. ** Da es in der Reihenfolge von links aufgerufen wird, können Sie sehen, dass die in der Nepal-Klasse definierte everest_place-Methode abgerufen wird. ** ** **

Lassen Sie uns das Ergebnis sehen.

Ausgabeergebnis


nepal

Der Rückgabewert der in der Nepal-Klasse definierten everest_place-Methode wurde ordnungsgemäß zurückgegeben.

Recommended Posts

Über die Ahnenmethode
Über die Methode
Ausgabe über die Methode, Teil 2
Über die Kartenmethode
Informationen zur to_s-Methode.
Ausgabe über die Methode Teil 1
Überlegungen zur Zeitmethode
Informationen zur Rolle der Initialisierungsmethode
Über das Paket
Über keinen Methodenfehler
Informationen zur StringBuilder-Klasse
Kommentar: Über die Schnittstelle
Über die Asset-Pipeline
Informationen zur Bindung von Java-Methoden
Über den ternären Operator
Informationen zu Aufteilungsmethoden (Java)
Informationen zum Kernel-Modul
[Ausgabe] Informationen zur Datenbank
Über den Umgang mit Null
Informationen zum Festlegen des JAXRS-Pfads
Beachten Sie die StringUtils # includesAny-Methode
Was ist die Zupfmethode?
Hinweise zum Umfang
Informationen zur Beschreibung von Docker-compose.yml
[Java Silver] Über gleich Methode
Verstehen Sie die Hilfsmethode form_with
Über die Erklärung zum Funktionstyp
Über die Programmiersprache Crystal
Über Rails Scraping-Methode Mechanisieren
Was ist die Initialisierungsmethode?
Verwendung der link_to-Methode
Über das Verhalten von Ruby Hash # ==
Über die Sprache, die von nun an zu lernen ist
Verwendung der include? -Methode
Verwendung der Methode form_with
Über die Grundlagen der Android-Entwicklung
Informationen zu den Methoden equals () und hashcode ()
Über das Symbol <%%> in Rails erb
Informationen zum Informationsaustausch-App-Band
Java-Vergleich mit der compareTo () -Methode
Informationen zur aktuellen Entwicklungsumgebung (Java 8)
Ich habe versucht, die Methode zu erklären
Ein Murmeln über die Utility-Klasse
[Rails] Über die Hilfsmethode form_with [Basic]
Denken Sie an die 7 Regeln von Optional
Über =
[Schienen 6] zerstören mit der Ressourcenmethode
Informationen zur Protokollebene von java.util.logging.Logger
Rufen Sie die Super-Methode in Java auf
Meine Gedanken zur Equals-Methode (Java)
Erraten Sie das Java Persistence Framework 2017 (3) Reladomo
Überprüfen Sie noch einmal den OpenSSL-Befehl