当前位置: 代码迷 >> python >> Java接口和Python Mixin之间的区别?
  详细解决方案

Java接口和Python Mixin之间的区别?

热度:83   发布时间:2023-06-13 14:19:40.0

我一直在阅读有关Python-Mixin并且知道它为类添加了一些功能(方法)。 同样, Java-Interfaces也提供了用于分类的方法。

我可以看到的唯一区别是Java-interfaces是抽象方法, Python-Mixin带有实现。

还有其他区别吗?

好吧,“抽象方法”部分非常重要。

Java是强类型的。 通过在类型定义中指定接口,可以使用它们来构造新类型的签名。 在类型定义之后,您已承诺此新类型(或某些子类)最终将实现在您指定的各种接口中定义的所有功能。

因此,接口实际上不会向类添加任何方法,因为它不提供方法实现。 它只是增加了类的签名/承诺。

但是,Python不是强类型的。 类型的“签名”并不重要,因为它仅在运行时检查您要调用的方法是否确实存在。

因此,在Python中,mixin确实是关于向类添加方法和功能的。 它根本与类型签名无关。

综上所述:

  • Java接口->功能未添加,签名已扩展。
  • Python mixins->功能已添加,签名无关紧要。
  相关解决方案