java - sirven - Cuántas interfaces puede implementar un archivo de clase
para que sirven las interfaces en java (5)
No hay límite en la cantidad de interfaces que una clase puede implementar.
¿Cuántas interfaces puede implementar un archivo de clase? ¿Existe un límite en la cantidad de interfaces utilizadas por un archivo de clase? Gracias por adelantado.
Para todos los propósitos prácticos, no hay límite en la cantidad de interfaces que una clase puede implementar, pero java no le permite heredar de múltiples superclases.
Sin embargo, si realmente quieres nitpick, puedes decir que la cantidad de interfaces que una clase puede implementar está vinculada por el valor máximo que la identificación de la interfaz puede tener en bytecode java, o la cantidad de memoria de código que tienes para implementar estas interfaces, o la cantidad de espacio en el disco duro para almacenar su bytecode. Estos son argumentos tontos. Obviamente, debido a que su computadora no tiene memoria infinita, rendimiento infinito y espacio de código infinito, sabemos que hay máximos teóricos en todo, al igual que la cantidad máxima teórica de líneas de código que puede tener en un solo contenedor.
Pero si realmente quiere saber la cantidad máxima teórica de interfaces que una clase puede implementar, es 65535.
su clase puede implementar un número ilimitado de Interfaces
y una Interface
puede extenderse sin límite de Interfaces
pero la mejor práctica es no implementar tantas interfaces.
De la especificación de Java VM sobre limitaciones de la JVM :
El número de superinterfaces directas de una clase o interfaz está limitado a 65535 por el tamaño del elemento interfaces_count de la estructura ClassFile.
Esa es la única limitación. Y se debe a la estructura del bytecode compilado de Java.
El límite es más práctico que técnico.
Un límite realista está en las docenas de código escrito a mano. Para el código generado puede tener mucho más, pero sospecho que tiene algo mal con su diseño si tiene tantos.
El límite en el formato de archivo es 65535.
Dado que la mayoría de los proyectos grandes tienen menos de 10K clases, es difícil imaginar por qué querría implementar esa cantidad de interfaces en una clase.