読者です 読者をやめる 読者になる 読者になる

Ruby で include と継承した場合の super の優先順位

Ruby

include と継承した場合、どちらが優先的に調べるのか試してみた。

[コード]

module M
    def homu
        p "M#homu"
    end
end

class Base
    def homu
        p "Base#homu"
    end
end

class X < Base
    include M
    def homu
        p "X#homu"
        super
    end
end

X.new.homu

[出力]

"X#homu"
"M#homu"

と、いう感じで include したモジュールのメソッドが優先して呼び出されます。