2016-01-04 28 views
1

内部类。例如,我有文件list.rb模块声明与Ruby的

module List 
class Base 
#... 
end 
end 

所以在外部文件中这个类将作为List::Base访问。

比方说,我创建另一个文件list_base_extenstion.rb

我可以这样做:

module List 
class BaseExtension < Base 
#... 
end 
end 

或者

class BaseExtension < List::Base 
end 

这是平等的吗?

否则BaseExtension不会被视为模块的一部分,而是直接从List::Base继承?

回答

3

不,它不相等。如果您使用

module List 
    class BaseExtension < Base 
    end 
end 

你定义一个名为List::BaseExtension类,从List::Base继承。相反,与

class BaseExtension < List::Base 
end 

你定义一个名为BaseExtension类,从List::Base继承。该课程将在List范围之外定义。