我正在阅读有关 ruby 中的 mixins 的内容,并反射(reflection)我所拥有的有关 java 的一些知识。 mixin 不就是响应该类型方法的另一个成员变量吗?我知道在像 ruby 这样的语言中,它只是一组可以“混合”到类中的方法。但这与包含类成员变量的 java 类有何不同?
提前谢谢您。
最佳答案
我想说,Ruby mixins
比 Java 类变量更类似于 Java 接口(interface)
。
与 Java 类似,Ruby 没有多重继承。在这两种语言中,一个类只能有一个父类(尽管该父类可以有它自己的父类,依此类推)。
与 Java 使用接口(interface)
来声明所有实现类都应定义的函数类似,Ruby 使用mixins
来增强给定类层次结构的功能。
Java 实例变量是在类中定义的,而 Ruby mixins 就像在当前类与其父类之间添加一个新的父类。对于类的对象来说,是的,mixins 可能看起来类似于 Java 实例变量(就像对象不知道从实例化类接收的成员和从父类继承的成员之间的区别一样)。
也许重要的区别在于,Ruby mixin 被添加到继承层次结构中,而添加 Java 实例成员需要修改实际的类。
关于java - 为什么在 java 类中包含类成员变量不像 ruby mixin 那样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23440303/