有一段代码:
module Module1
def initialize
puts "init module1..."
end
def do_1
puts "do 1"
end
end
module Module2
def initialize
puts "init module2..."
end
def do_2
puts "do 2"
end
endclass Test
def initialize
puts "init Test..."
end
end
class NewTest < Test
include Module1
include Module2
def initialize
super
end
def do
do_1
do_2
end
endt = NewTest.new
t.do
执行后结果如下:
引用
init module2...
do 1
do 2
do 1
do 2
请问NewTest的initialize中如何才能也调用到Module1和其超类Test的initialize?
我看到书上说,super调用的是其super class的同名函数,但是NewTest得superclass函数返回的是Test类。
由此看出super调用的仅是ancestors返回的继承关系列表的最上层的同名函数。