mixin 和继承有什么区别?
最佳答案
mixin 通常与多重继承一起使用。因此,从这个意义上说,“没有区别”。
细节是,mixin 作为独立对象很少有用。
例如,假设您有一个名为“ColorAndDimension”的混合宏,它添加了一个颜色属性以及宽度和高度。
现在,您可以将 ColorAndDimension 添加到 Shape 类、Sprite 类、Car 类等。它们都将具有相同的接口(interface)(比如 get/setColor、get/setHeight/Width 等)
因此,在一般情况下,mixin 是继承。但是您可以争辩说,混合宏是“主要”类还是简单的混合宏,这取决于类在整个领域中的作用。
编辑——只是为了澄清。
是的,在今天的现代术语中,mixin 可以被认为是具有关联实现的接口(interface)。它真的只是普通的、旧的、日常的多重继承,使用普通的、旧的、日常的类。它恰好是 MI 的一个具体应用。大多数语言都不给 mixin 任何特殊地位;它只是一个旨在“混合”而不是独立使用的类。
关于oop - 混合与继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34978963/