Подтвердить что ты не робот

Сколько интерфейсов может быть реализован файл класса

Сколько интерфейсов может реализовывать файл класса? Существует ли ограничение на количество интерфейсов, используемых файлом класса? Спасибо заранее.

4b9b3361

Ответ 1

Для всех практических целей нет ограничений на количество интерфейсов, которые может реализовать класс, но java не позволяет наследовать от нескольких суперклассов.

Однако, если вы действительно хотите nitpick, вы можете сказать, что количество интерфейсов, которые может реализовать класс, связано максимальным значением, которое идентификатор интерфейса может быть в java-байт-коде или объем памяти кода, который вы должны реализовать интерфейсы или объем пространства на жестком диске для хранения вашего байт-кода. Это глупые аргументы. Очевидно, что, поскольку ваш компьютер не имеет бесконечной памяти, бесконечной пропускной способности и бесконечного пространства кода, мы знаем, что во всем есть теоретические максимумы, точно так же, как теоретическое максимальное количество строк кода, которое вы можете иметь в одной банке.

Но если вы действительно хотите узнать теоретическое максимальное количество интерфейсов, которые может реализовать класс, это 65535.

Ответ 2

Из спецификации Java VM на Ограничения JVM:

Количество прямых суперинтерфейсов класса или интерфейса ограничено 65535 размером элемента interface_count структуры ClassFile.

Это единственное ограничение. И это связано со структурой скомпилированного байт-кода Java.

Ответ 3

Предел более практичен, чем технический.

Реалистичный предел находится в десятках для написанного вручную кода. Для сгенерированного кода у вас может быть гораздо больше, но я подозреваю, что у вас что-то не так с вашим дизайном, если у вас их много.

Предел в формате файла - 65535.

Учитывая, что большинство крупных проектов имеют классы менее 10K, поэтому трудно себе представить, почему вы хотели бы реализовать это множество интерфейсов в одном классе.

Ответ 4

ваш класс может реализовать неограниченное число Interfaces, а один Interface может расширять неограниченное число Interfaces, но лучше всего не применять так много интерфейсов.

Ответ 5

Нет ограничений на количество интерфейсов, которые может реализовать класс.