23

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

4

5 回答 5

30

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

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

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

于 2012-06-14T13:25:04.633 回答
22

来自 Java VM Specification on Limitations of the JVM

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

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

于 2012-06-14T13:28:52.353 回答
8

限制比技术更实用。

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

文件格式的限制为 65535。

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

于 2012-06-14T13:26:58.520 回答
2

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

于 2012-06-14T13:32:16.023 回答
-3

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

于 2012-06-14T13:32:01.980 回答