ruby - 当撤销类定义中的方法时,自定义类和ruby保留类有什么区别,例如 `Class`或 `Object`

标签 ruby class

我是Ruby新手,正在学习一些Ruby的基础知识,比如类继承。

我写了一些片段来加深我的理解,但是下面的两个片段让我很困惑。

class Object
  def hello_o
    puts "Hello in Object"
  end

  hello_o
end

这个打印“Hello in Object”而

class A
  def hello_a
    puts "Hello in A"
  end

  hello_a
end

这个给我一个错误:

A:Class 的未定义局部变量或方法 hello_a'

为什么?我认为 AObject 都是类。

最佳答案

在第一个示例中,您在类 Object 上定义了一个实例方法 hello_o,并从 Object 调用它,它是Class 类,它继承了 Object 类,所以它起作用了。

在第二个示例中,您定义了 A 类的实例方法 hello_a,并尝试从 A 调用它,这是一个Class 类的实例,它没有继承 A 类,因此失败。

关于ruby - 当撤销类定义中的方法时,自定义类和ruby保留类有什么区别,例如 `Class`或 `Object`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19949411/

相关文章:

java 为类对象定义 println

c++ - 设置(属性)类的单个/多个成员的最佳实践

python - 如何将一个 Python 对象的所有属性复制到另一个对象?

ruby - 为 Ruby & Watir 运行 Cucumber 时出现 "uninitialized constant Cucumber::Rb_Support (NameError)"

ruby-on-rails - Rails 3 + 守护进程 gem : Exception when querying model

c - 下载 Rails - C 无法编译

ruby - watir-webdriver 检查表大小行数和列数

ruby - 日期格式 Rails 3.1

swift - 自定义对象上的 NSPredicate

java - 如何读取系统本地路径中存在的 Java 文件的所有方法