24

我想从父类继承一个子类。

这是我的代码。3 个类在 3 个单独的文件中创建。

class Transportation
#codes
end

class Plane < Transportation
#codes
end

class Boat < Transportation
#codes
end

当我运行这段代码时,我得到了 Boat 的错误,但当我只创建了 Plane 时,Plane 没有问题:

uninitialized constant Transportation (NameError)

谁能帮我解决这个问题?

谢谢

4

1 回答 1

36

此代码没有失败的原因,除非 的定义Transportation在另一个文件中。

如果是这种情况,并且它们位于不同的文件中,请不要忘记Transportation在其他文件之前要求具有该类的文件,然后再使用其中的用法。

正如您所提到的,有三个不同的文件。

您可以创建一个包含所需库的文件。也许它在您的bin/transport_simulator.rb文件中。

require 'transportation'
require 'boat'
require 'plane'

现在它们将按正确的顺序被要求,并且带有子类 Transportation 的类的文件将知道该类。

于 2013-05-13T02:23:40.267 回答