Ruby——嵌套类和子类是一回事吗?

标签 ruby inheritance

下面例子中的 NestedChild 有什么区别?是否只是同一事物的不同语法?

class Parent
  class Nested
    ...
  end
end

class Child < Parent
  ...
end

最佳答案

,它们是不同的。

嵌套:Computer 之外的“Processor”类只能作为 Computer::Processor 访问。嵌套为内部类( namespace )提供上下文。对于 ruby​​ 解释器 Computer 和 Computer::Processor 只是两个独立的类。

 class Computer
  class Processor # To create an object for this class, this is the syntax Computer::Processor.new. The Outer class provides context

Child:下面是类继承,Parent类的实例/类方法对Child可用。 Child/Parent 可以这样实例化 Child.new/Parent.new

class Child < Parent

注意 Processor 只能Computer::Processor 访问,调用 Processor 会抛出一个错误。同样,调用 Child 是好的,但是调用 Parent::Child 会抛出警告(尽管它实际上运行正常)。

关于Ruby——嵌套类和子类是一回事吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44835938/

相关文章:

ruby - 如何将数组中的散列转换为ruby中的数组

ruby-on-rails - Rails 加载模块链时遇到问题

ruby - 在 Windows 上,我应该将哪个版本的 Ruby 与 Vim 7.4 一起使用?

ruby-on-rails - Rails Admin Plugin 问题,用于与同一模型的多对多关系

java - 我可以在子类中使用父类(super class)中的方法而不覆盖它吗?

c++ - 一个类是否可以在其构造函数的参数中设置它从另一个类继承的变量的值?

ruby-on-rails - 如何使用 Ruby Mechanize GEM 登录 TDAmeritrade?

java - 在子类中重新定义静态方法

java - 如何将java类(从一个包)继承到另一个类(在另一个包中)

javascript - 为什么在 javascript 中枚举继承的(如果它是继承的则有混淆)属性?