Ruby ではsuper
、次のコードが示すように、シングルトン メソッド内で使用して、対応するスーパー クラスのシングルトン メソッドを呼び出すことができます。
class Base
def self.class_method
puts "Base class method"
end
end
class Derived < Base
def self.class_method
puts "Derived class method"
super
end
end
Derived.class_method
# Derived class method
# Base class method
super
ただし、その呼び出しがwithinDerived.class_method
に到達する方法がよくわかりませんBase.class_method
。メタクラスで定義されていると思いclass_method
ますが、メタクラスに親子関係があるということですか? (実験で確かめることはできません)
更新: この質問をしているのは、基本クラスと派生クラスのメタクラスの間に何らかの関係があることをどこかで見たのを思い出したためです (しかし、それ以上は見つかりません)。実際にどのように機能するかを知ることに加えてsuper
、2 つのメタクラスが完全に分離されているかどうかも確認したいと思います。