我无法将父类的实例值获取到子类,我的代码是这样的。
class TimeLine
attr_accessor :tweets
def initialize(tweets=[])
@tweets = tweets
end
def print
puts tweets.join("\n")
end
end
class AuthenticateTimeLine < TimeLine
def print
authenticate!
super
end
def authenticate!
puts "authenticated!"
end
end
TimeLine.new([1,2,3,4,5])
authenticate_timeline = AuthenticateTimeLine.new
authenticate_timeline.print
当我在子类上调用super时,我得到的是空数组。
答案 0 :(得分:1)
这是因为您使用空数组对其进行了初始化,因此没有将任何参数传递给AuthenticateTimeLine.new
,因此采用了默认的[]
(比较您的TimeLine#initialize
方法)。如果您将数组作为参数传递,那么它将起作用:
authenticate_timeline = AuthenticatateTimeLine.new([1,2,3,4,5])
authenticate_timeline.print
# 'Works' now!