我是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'
A
和 Object
都是类。
最佳答案
在第一个示例中,您在类 Object
上定义了一个实例方法 hello_o
,并从 Object
调用它,它是Class
类,它继承了 Object
类,所以它起作用了。
在第二个示例中,您定义了 A
类的实例方法 hello_a
,并尝试从 A
调用它,这是一个Class
类的实例,它没有继承 A
类,因此失败。
关于ruby - 当撤销类定义中的方法时,自定义类和ruby保留类有什么区别,例如 `Class`或 `Object`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19949411/