问题
How many interfaces can a class file implement? Is there a limit on the number of interfaces used by a class file? Thanks in advance.
回答1:
For all practical purposes, there is no limit on the number of interfaces a class can implement, but java does not let you inherit from multiple superclasses.
However, if you really want to nitpick, you can say that the number of interfaces a class can implement is bound by the maximum value the interface id can be in java bytecode, or the amount of code memory you have to implement these interfaces, or the amount of hard drive space to store your bytecode. These are silly arguments. Obviously, because your computer doesn't have infinite memory, infinite throughput, and infinite code space, we know that there are theoretical maximums on everything, just like how there's a theoretical maximum number of lines of code you can have in a single jar.
But if you really really want to know the theoretical maximum number of interfaces a class can implement, it's 65535.
回答2:
From the Java VM Specification on Limitations of the JVM:
The number of direct superinterfaces of a class or interface is limited to 65535 by the size of the interfaces_count item of the ClassFile structure.
That is the only limitation. And it is due to the structure of the compiled Java bytecode.
回答3:
The limit is more practical than technical.
A realistic limit is in the dozens for hand written code. For generated code you can have much more, but I suspect you have something wrong with your design if you have that many.
The limit in the file format is 65535.
Given most large projects have less than 10K classes, so it is hard to imagine why you would want to implement that many interfaces in one class.
回答4:
your class can implement unlimited no of Interfaces
and one Interface
can extend unlimited no of Interfaces
but best practice is to don't implement so many interfaces .
回答5:
There is no limit on the number of interfaces a class can implement.
来源:https://stackoverflow.com/questions/11034035/how-much-interfaces-a-class-file-can-implement