在Ruby中有可能交换出几乎相同的类吗? 类父类 惩罚! 结束 结束 班级妈妈你不能做的是将对象的实例从一个类转换到另一个类。这就是我想要的。该死!它与大多数面向对象的设计模式背道而驰。如果您需要的话,有一些方法可以使对象在创建后进行专门化并采取新的行为,或者您可以编写一个Dad.to\u mom方法,该方法会发出相同的mom版本。您需要的是一个mom和Dad都从中继承的父类。然后,任何期望父对象的对象都将接受妈妈或爸爸。请参阅:多态性…@AndyJones,这无助于将对象从一种类型切换到另一种类型。@tadman——好吧,是的,关键是你不会将对象从类型A切换到类型B。你设计的系统将可交换地接受类型A或B。如果你能做到这一点,你会得到与将A切换到B相同的功能。。。
如果我有一个在Ruby中有可能交换出几乎相同的类吗? 类父类 惩罚! 结束 结束 班级妈妈你不能做的是将对象的实例从一个类转换到另一个类。这就是我想要的。该死!它与大多数面向对象的设计模式背道而驰。如果您需要的话,有一些方法可以使对象在创建后进行专门化并采取新的行为,或者您可以编写一个Dad.to\u mom方法,该方法会发出相同的mom版本。您需要的是一个mom和Dad都从中继承的父类。然后,任何期望父对象的对象都将接受妈妈或爸爸。请参阅:多态性…@AndyJones,这无助于将对象从一种类型切换到另一种类型。@tadman——好吧,是的,关键是你不会将对象从类型A切换到类型B。你设计的系统将可交换地接受类型A或B。如果你能做到这一点,你会得到与将A切换到B相同的功能。。。,ruby,class,inheritance,metaprogramming,Ruby,Class,Inheritance,Metaprogramming,如果我有一个Dad的实例,但想让它成为Mom的实例,那么在Ruby中可以这样做吗 如果“交换”是指变量上下文中的替换: class Parent def punish! end end class Mom < Parent end class Dad < Parent end 您可以随时重新分配变量。您不能将对象的实例从一个类转换到另一个类。一旦创建,它基本上就被困在那个类中 此处的相同原则适用于对象属性和可能保存对象引用的其他位置。如果“交换”是指变量上下文中的替换: c
Dad
的实例,但想让它成为Mom
的实例,那么在Ruby中可以这样做吗 如果“交换”是指变量上下文中的替换:
class Parent
def punish!
end
end
class Mom < Parent
end
class Dad < Parent
end
您可以随时重新分配变量。您不能将对象的实例从一个类转换到另一个类。一旦创建,它基本上就被困在那个类中
此处的相同原则适用于对象属性和可能保存对象引用的其他位置。如果“交换”是指变量上下文中的替换:
class Parent
def punish!
end
end
class Mom < Parent
end
class Dad < Parent
end
您可以随时重新分配变量。您不能将对象的实例从一个类转换到另一个类。一旦创建,它基本上就被困在那个类中
同样的原则也适用于对象属性和其他可能保存对象引用的位置。为什么不可能?@13aal,因为妈妈和爸爸可能有自己的方法和属性集。妈妈是怎么变成爸爸的?当你换掉的时候?你到底是什么意思?你的意思是如果你有一个母亲的对象,你能对它做点什么,让它成为父亲吗?我们这样想。你有一对父母都是父母,所以在编程中他们都是从父类继承的。如果你担心这个问题,你可以从父类继承一个类,并称之为
MomAndDad
或其他什么?为什么不可能呢?@13aal因为妈妈和爸爸可能有自己的方法和属性集。妈妈是怎么变成爸爸的?当你换掉的时候?你到底是什么意思?你的意思是如果你有一个母亲的对象,你能对它做点什么,让它成为父亲吗?我们这样想。你有一对父母都是父母,所以在编程中他们都是从父类继承的。如果您担心这个问题,您可以将一个类从父类继承,并将其称为MomAndDad
或其他什么?>您不能做的是将对象实例从一个类转换为另一个类。这就是我想要的。该死!它与大多数面向对象的设计模式背道而驰。如果您需要的话,有一些方法可以使对象在创建后进行专门化并采取新的行为,或者您可以编写一个Dad.to\u mom
方法,该方法会发出相同的mom版本。您需要的是一个mom和Dad都从中继承的父类。然后,任何期望父对象的对象都将接受妈妈或爸爸。请参阅:多态性…@AndyJones,这无助于将对象从一种类型切换到另一种类型。@tadman——好吧,是的,关键是你不会将对象从类型A切换到类型B。你设计的系统将可交换地接受类型A或B。如果你能做到这一点,你将获得与将A切换到B相同的功能。>你不能做的是将对象的实例从一个类转换到另一个类。这就是我想要的。该死!它与大多数面向对象的设计模式背道而驰。如果您需要的话,有一些方法可以使对象在创建后进行专门化并采取新的行为,或者您可以编写一个Dad.to\u mom
方法,该方法会发出相同的mom版本。您需要的是一个mom和Dad都从中继承的父类。然后,任何期望父对象的对象都将接受妈妈或爸爸。请参阅:多态性…@AndyJones,这无助于将对象从一种类型切换到另一种类型。@tadman——好吧,是的,关键是你不会将对象从类型A切换到类型B。你设计的系统将可交换地接受类型A或B。如果你能做到这一点,你会得到与将A切换到B相同的功能。。。