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

Является ли интерфейс классом?

Является ли интерфейс особым видом класса или вы можете сказать, что интерфейс не является классом вообще?

4b9b3361

Ответ 1

Интерфейс не является классом, но вы можете сказать, что оба интерфейса и классы являются типами.

Из спецификация Java:

В языке программирования Java каждая переменная и каждое выражение имеют тип, который можно определить во время компиляции. Тип может быть примитивным типом или ссылочным типом. Типы ссылок включают типы классов и типы интерфейсов.

Обратите внимание, что существует специальный класс Class<T>, который может представлять как классы, так и интерфейсы:

Экземпляры класса Class представляют классы и интерфейсы в запущенном приложении Java.

Тот факт, что интерфейс представлен экземпляром Class, где isInterface - true, может создать впечатление, что интерфейс - это особый тип класса. Однако это не так.

Ответ 2

Нет, интерфейс не является классом в Java.

Интерфейс - это тип, и все ссылочные типы (т.е. не примитивные типы) обрабатываются аналогично в Java. Часто, когда люди говорят "класс", они на самом деле ссылаются на "ссылочный тип".

Что может вас смутить, так это то, что определение интерфейса хранится в файле .class, но это просто технический артефакт Java. Фактически все определения ссылочного типа (классы, интерфейсы, аннотации, перечисления) хранятся в файлах .class в Java.

Ответ 3

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

Ответ 5

Концепция интерфейсов относится к абстрактным классам, где абстрактные классы содержат прототипы метода (или абстрактные методы), а также могут содержать несколько его методов, тогда как интерфейсы содержат только прототипы (или подпись) метода или абстрактных методов, определение которых должно обеспечиваться реализующим классом. поэтому из вышеприведенного утверждения ясно, что интерфейсы похожи на 100-процентные абстрактные классы, где - ни один из его методов не определен. упоминание об этом снова интерфейсы похожи на 100% абстрактных классов, но не на классы.

"Интерфейсы - это контракты для того, что класс может делать"

Причиной для введения интерфейса является то, что мы можем extend только один класс, но интерфейс принес новую вещь implement в java, чтобы мы могли реализовать тысячи интерфейсов. Поэтому мы не можем сказать, что это класс.

вы можете получить больше об этом Здесь!

Ответ 6

Интерфейс (представляет собой группу связанных методов с пустым телом). Это просто интерфейс. Это не класс (класс A - это проект, из которого создаются отдельные объекты).

обратите внимание, что вы определяете такой интерфейс

interface Bicycle {....}

и класс определяется следующим образом

class MyBMX implements Bicycle{...}

Итак, интерфейс - это интерфейс, а не класс