【问题标题】:How much interfaces a class file can implement [closed]一个类文件可以实现多少接口[关闭]
【发布时间】:2012-06-17 12:59:46
【问题描述】:

一个类文件可以实现多少个接口?类文件使用的接口数量是否有限制?提前致谢。

【问题讨论】:

    标签: java oop interface multiple-inheritance


    【解决方案1】:

    出于所有实际目的,一个类可以实现的接口数量没有限制,但 java 不允许您从多个超类继承。

    但是,如果你真的要挑剔,你可以说一个类可以实现的接口数量受接口 id 在 java 字节码中的最大值的限制,或者你必须实现这些的代码内存量接口,或存储字节码的硬盘空间量。这些都是愚蠢的论点。显然,由于您的计算机没有无限的内存、无限的吞吐量和无限的代码空间,我们知道所有事物都有理论上的最大值,就像您可以在单个 jar 中拥有的理论上的最大代码行数一样。

    但如果你真的想知道一个类可以实现的接口的理论最大数量,那就是 65535。

    【讨论】:

    • 我的课程包含多个课程的子类。它很漂亮。
    • 是的,python 是一门美丽的语言。
    • @mre 我不认为你明白她说的那是怎么回事ಠ_ಠ
    • 她也是这么说的! :D
    【解决方案2】:

    限制比技术更实用。

    手写代码的实际限制是几十个。对于生成的代码,你可以有更多,但如果你有那么多,我怀疑你的设计有问题。

    The limit in the file format is 65535.

    鉴于大多数大型项目的类少于 10K,因此很难想象为什么要在一个类中实现这么多接口。

    【讨论】:

      【解决方案3】:

      来自Limitations of the JVM 上的 Java VM 规范:

      类或接口的直接超接口的数量受 ClassFile 结构的 interfaces_count 项的大小限制为 65535。

      这是唯一的限制。这是由于编译后的Java字节码的结构。

      【讨论】:

      • Java 语言规范!= JVM 规范。
      • @dacwe 这里的限制不是 Java 语言,而是 ClassFile 规范。
      • 没错! Java 可以编译成字节码以外的其他东西...
      【解决方案4】:

      一个类可以实现的接口数量没有限制。

      【解决方案5】:

      您的类可以实现无限数量的Interfaces 和一个Interface 可以扩展无限数量的Interfaces,但最佳做法是不要实现这么多接口。

      【讨论】:

        猜你喜欢
        • 2015-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-24
        • 2014-02-11
        • 1970-01-01
        • 2014-01-18
        相关资源
        最近更新 更多