我一直在阅读有关Python-Mixin
的内容,并了解它为课程添加了一些功能(方法)。同样,Java-Interfaces
也提供了类的方法。
唯一不同的是,我可以看到Java-interfaces
是抽象方法而Python-Mixin
是实现的。
还有其他差异吗?
答案 0 :(得分:3)
嗯,抽象方法'部分非常重要。
Java是强类型的。通过在类型定义中指定接口,可以使用它们来构造新类型的签名。在类型定义之后,您承诺这个新类型(或某个子类)最终将实现在您指定的各种接口中定义的所有函数。
因此,接口实际上并没有向类添加任何方法,因为它没有提供方法实现。它只是增加了班级的签名/承诺。
但是,Python并不是强类型的。 '签名'这类型并不重要,因为它只是在运行时检查您想要调用的方法是否实际存在。因此,在Python中,mixin确实是在为类添加方法和功能。它根本不关心类型签名。
总结: