我正在尝试理解Ruby中的继承系统。这是我的代码:
class Man
attr_accessor :name
def initialize(name = "Foo")
@name = name
end
end
class User < Man
attr_accessor :mail
def initialize(mail = "bar")
super
@mail = mail
end
end
这是我的测试:
man = Man.new
man
=> #<Man:0x007fb68da4a768 @name="Foo">
user = User.new
user
=> #<User:0x007fb68da442c8 @name="bar", @mail="bar">
我不明白为什么用户的@name不是“Foo”!通常情况下,它应该是这样的,因为这是man初始化方法中的默认参数,是吗?
谢谢你的帮助!