尝试使用ruby继承

时间:2018-02-25 18:45:33

标签: ruby

你如何在“第二”课程中建立我的'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

1 个答案:

答案 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方法。