是否可以在 Ruby 中换出几乎相同的 类?

Is it possible to swap out nearly identical classes in Ruby?

class Parent
 def punish!
 end
end

class Mom < Parent
end

class Dad < Parent
end

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

如果 "swap" 是指在变量的上下文中替换:

parent = Mom.new
parent.punish!

parent = Dad.new
parent.punish!

您可以随时重新分配变量。您不能做的是将一个对象的实例从一个 class 变态为另一个。创建后,它基本上停留在 class.

这里同样的原则适用于对象属性和其他可能保存对象引用的地方。