可以在Ruby中换掉几乎相同的类吗?

时间:2016-04-18 23:42:40

标签: ruby class inheritance metaprogramming

class Parent
 def punish!
 end
end

class Mom < Parent
end

class Dad < Parent
end

如果我有一个Dad的实例,但想让它成为Mom的一个实例,这在Ruby中是否可行?

1 个答案:

答案 0 :(得分:2)

如果通过“交换”,则表示在变量的上下文中替换:

parent = Mom.new
parent.punish!

parent = Dad.new
parent.punish!

您可以随时重新分配变量。你不能做的是将一个对象的实例从一个类转换为另一个类。一旦创建,它基本上就停留在那个类中。

此处的相同原则适用于对象属性和可能保存对象引用的其他位置。