我是 Ruby 新手。我对在 Ruby 中使用继承有疑问。
我在名为 Doggy.rb 的文件中有一个名为 Doggy 的类
class Doggy
def bark
puts "Vicky is barking"
end
end
我在另一个名为 puppy.rb 的文件中编写了另一个名为 Puppy 的类
class Puppy < Doggy
end
puts Doggy.new.bark
我收到这个错误:
Puppy.rb:1:in `<main>': uninitialized constant Doggy (NameError)
是否必须将这些类(Doggy 和 Puppy)放在一个文件中?
已编辑
根据建议,我已尝试使用 require 和 require_relative,如图所示,但我仍然低于错误
Puppy.rb:1:in `<main>': uninitialized constant Doggy (NameError)
class Puppy < Doggy
end
require_relative 'Doggy.rb'
puts Doggy.new.bark
最佳答案
要在puppy.rb 文件中完成的更改
假设这两个文件都在同一个目录中,您需要按以下方式获取该文件:
小狗.rb
class Doggy
def bark
puts "Vicky is barking"
end
end
小狗.rb
require File.expand_path('../doggy.rb', __FILE__)
class Puppy < Doggy
end
puts Doggy.new.bark
关于ruby - 在 Ruby 中对多个文件使用继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337625/