class Mom < Parent
class Dad < Parent
If by "swap" you mean substitute in the context of a variable:
parent = Mom.new parent.punish! parent = Dad.new parent.punish!
You can reassign a variable at any time. What you can't do is pervert an instance of object from one class into another. Once created it's basically stuck in that class.
The same principle here applies to object attributes and other places where an object reference might be saved.