我想继承一个类-相同的模块,但在两个单独的文件中。
# file1.rb
module Module
class A
end
end
我尝试了一些东西,这很有效:
# file2.rb
class Module::B < Module::A
end
但这看起来很奇怪。。不
这和上面的例子一样吗?我测试过了,但不是。。为什么?
# file2.rb
module Module
class B < A
end
end
谢谢!
我不知道你所说的是什么意思
我测试过,它不是[相同]
因为您没有解释您看到的意外结果/差异。
然而
一般来说,该代码的两个版本的行为应该完全相同。只有一个细微的区别。
在此版本中:
module Module
class B < A
end
end
类A
将首先尝试解析为Module::A
,然后(如果找不到这样的类(它将尝试解析为::A
(即顶级类(。
因此,只有当Module::A
不存在/尚未加载,并且::A
确实存在并已加载时,行为才会不同。