Ruby 类的深入解析
1. Ruby 类的基本结构
Ruby 类本身也是对象,因此 RClass 结构必然包含类指针(class pointer)和实例变量数组,这是每个 Ruby 对象都具备的元素。以下是 RClass 结构的初步展示:
RClass
RClass
Class
first_name
first_name=
last_name
last_name=
@first_name
@last_name
method table:
klass
class pointer:
@value1
@value2
instance-level
attribute names:
class-level
instance variables:
这里添加了指向 Class 类的指针,理论上它是每个 Ruby 类对象的类。不过后续实验会表明,实际情况并非如此,klass 指针指向的是其他内容。同时,还添加了实例变量表,需要注意的是,这些是类级别的实例变量,不要与对象级实例变量的属性名表混淆。
2. 继承机制
继承是面向对象编程的重要特性。Ruby 实现了单继承,在创建类时可以选择指定一个超类。若未指定,Ruby 会将 Object 类作为超类。例如:
class Mathematician < Person
# ...
end
这样,Mathematician 类的每个实例都会包含 Person 类的方法。可以将 first