你如何在“第二”课程中建立我的'def showVars'来输出它从'First'类继承的'puts(variables)'?
class First
@@varOne = 1
CONSTANT_ONE = 10
end
class Second < First
def showVars
puts @@varOne
puts CONSTANT_ONE
end
end
我失败的尝试:
class First
@@varOne = 1
CONSTANT_ONE = 10
end
class Second < First
def showVars
puts @@varOne
puts CONSTANT_ONE
end
end
puts Second.showVars # <-- fails
答案 0 :(得分:1)
您无法调用Second.showVars
,因为它是一种实例方法。要以这种方式调用它,您必须使用类方法。您可以通过在方法名称中添加self
来实现此目的。
class First
@@varOne = 1
CONSTANT_ONE = 10
end
class Second < First
def self.showVars
puts @@varOne
puts CONSTANT_ONE
end
end
puts Second.showVars
现在的输出是:
1
10
[Finished in 0.1s]
类方法等同于其他语言中的静态方法。
我注意到的另一点是您使用showVars
为方法camelCase
命名。应使用snake_case
命名Ruby方法。