【发布时间】:2023-03-10 05:10:01
【问题描述】:
我正在尝试了解 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的initialize方法中的默认参数,不是吗?
感谢您的帮助!
【问题讨论】:
标签: ruby oop inheritance