Java interface (интерфейс) представляет собой серию деклараций методов и представляет собой набор функций метода. Интерфейс имеет только характеристики методов, но нет реализации метода. Следовательно, эти методы могут быть реализованы различными классами в разных местах, и эти реализации могут иметь различное поведение (функции).
1. Значение интерфейса:
1. Интерфейс Java, структуры, которые существуют на языке Java, имеют специфический синтаксис и структуру;
2. Коллекция функций методов, которые имеет класс, является логической абстракцией.
Первый называется «интерфейс Java», а последний называется «интерфейс».
Сам интерфейс Java не имеет никакой реализации, потому что интерфейс Java не включает появления, а только описывает публичное поведение, поэтому интерфейс Java более абстрактный, чем класс абстрактного Java.
Методы интерфейса Java могут быть только абстрактными и публичными. Интерфейс Java не может иметь конструктор. Интерфейс Java может иметь публичные, статические и окончательные свойства.
2. Зачем использовать интерфейс Java - это один язык наследования? Если вы хотите добавить новые функции в конкретные классы с существующими родительскими классами, в рамках принципа OCP решение состоит в том, чтобы добавить родительские классы в свой родительский класс или добавить родительские классы в свой родительский класс, пока оно не перейдет в верхнюю часть структуры иерархии классов. Таким образом, дизайн внедрения конкретного класса становится модификацией всех классов во всей иерархии.
Когда есть интерфейс, в приведенном выше примере нет необходимости поддерживать все классы во всей структуре иерархии.
3. Интерфейс имеет Insertability:
Любой класс в иерархии может реализовать интерфейс, который повлияет на все подклассы этого класса, но не повлияет на какие -либо суперклассы этого класса. Этот класс должен будет реализовать методы, указанные этим интерфейсом, и его подклассы могут автоматически наследовать эти методы с этого класса, и, конечно, они также могут заменить все эти методы или некоторые из них. В настоящее время эти подклассы подключаются (и могут быть загружены с помощью этого типа интерфейса, передавая и реализуя все его подклассы).
Интерфейс обеспечивает интерполяцию и вызовы методов. Чем больше масштаб программной системы, тем дольше жизненный цикл. Интерфейс обеспечивает гибкость и масштабируемость программной системы и взаимосвязанность.
Именно из -за границы раздела, что одноразовое наследование Java имеет возможность нового расширения (замена множественного наследования); 3. Тип иерархия интерфейс Java (и абстрактные классы) обычно используется в качестве отправной точки иерархии типа.
Если у класса уже есть основной супертип, то путем реализации интерфейса класс может иметь еще один незначительный супертип, который называется гибридным типом.
4. Классификация интерфейса Java
1. Обычный интерфейс (включая определение метода) Public Interface ActionListener {public assoce void actionperformed (событие ActionEvent);}
2. Идентификационный интерфейс (без определения метода и атрибута) Идентификационный интерфейс - это интерфейс без каких -либо методов и атрибутов. Идентификационный интерфейс не имеет никаких семантических требований для класса, которые его реализуют. Это только указывает на то, что класс, который реализует его, принадлежит конкретному типу.
публичный интерфейс serializable {}; 3. Постоянный интерфейс относится к использованию интерфейса Java для объявления некоторых констант, а затем классы, которые реализуют этот интерфейс, используют эти константы.
Public Interface AppConstants {public Static Final Data_Source_Name = "test"; public static final user_name = "test";
5. Характеристики интерфейса
1. Переменные элемента в интерфейсе Java имеют публичное, статическое и окончательное по умолчанию (все из которых могут быть опущены), и должны отображаться и инициализировано, то есть переменные элемента на границе раздела являются постоянными (ограничения, разделенные «_» между словами)
2. Методы в интерфейсе Java имеют публичный и абстрактный тип по умолчанию (все можно опущен). Без методов тел они не могут быть созданы.
3. Интерфейс Java может содержать только переменные участников общественных, статических, конечных типов и методов публичных, абстрактных типов.
4. В интерфейсе нет конструктора и не может быть создан.
5. Один интерфейс не может реализовать другой интерфейс, но он может наследовать множество других интерфейсов.
6. Интерфейс Java должен реализовать свои абстрактные методы с помощью классов.
7. Когда класс реализует определенный интерфейс Java, он должен реализовать все абстрактные методы в интерфейсе, в противном случае этот класс должен быть объявлен как абстрактный класс
8. Не разрешено создавать экземпляр интерфейса (экземпляр), но разрешено определить эталонную переменную типа интерфейса. Эта эталонная переменная относится к экземпляру класса, который реализует этот интерфейс.
9. Класс может наследовать только один прямой родительский класс, но может реализовать несколько интерфейсов, косвенно реализовать множественное наследование.
6. Разница между интерфейсом Java и абстрактными классами Java Основным объектно-ориентированным дизайном является абстракция. Как абстрактные классы, так и интерфейсы расположены на верхнем слое дерева наследования.
Сходство:
1. представляет слой абстракции системы. Когда система использует класс на дереве наследования, она должна попытаться объявить эталонную переменную как верхний абстрактный тип дерева наследования. Это может улучшить связь между двумя системами. 2. Ни один из них не может быть создан 3. Оба содержат абстрактные методы. Эти абстрактные методы используются для описания того, какие услуги может предоставить систему, но не содержат различий в организме метода:
1. Самое большое отличие состоит в том, что класс абстрактного Java может предоставить частичные реализации определенных методов, в то время как интерфейс Java не может; Это, вероятно, единственное преимущество класса абстрактного Java, но это преимущество очень полезно.
Вы можете добавить новый конкретный метод в абстрактный класс, и все подклассы автоматически получат этот метод; Но добавьте новый метод в интерфейс Java, и все классы, которые реализуют этот интерфейс, не могут быть успешно скомпилированы, и вы должны вручную добавить реализацию этого метода в каждый класс, который реализует интерфейс;
2. Реализация абстрактного класса может быть дана только подклассом, то есть реализация может быть только в унаследованной иерархической структуре, определенной абстрактным классом; Следовательно, эффективность абстрактного класса в качестве инструмента определения типа значительно снижается.
Java Interface. Любой класс, который реализует методы, указанные в интерфейсе Java, может иметь тип этого интерфейса, и класс может реализовать любые множественные интерфейсы Java, так что этот класс имеет несколько типов.
Как видно выше, интерфейс Java является идеальным инструментом для определения смешанных типов. Смешанные классы показывают, что класс имеет не только поведение определенного первичного типа, но и другие вторичные поведения.
3. Сочетание соответствующих преимуществ абстрактных классов и интерфейсов Java В точках 1 и 2, выйдет классический дизайн -шаблон:
Работа по объявлению типа все еще выполняется интерфейсом Java, но в то же время дается класс абстрактного Java, и этот интерфейс реализован. Другие конкретные классы, которые также принадлежат этому абстрактному типу, могут выбрать для реализации этого интерфейса Java или наследовать этот абстрактный класс. То есть в иерархии интерфейс Java находится на вершине, а затем затем следует абстрактный класс. Самые большие преимущества этих двух могут быть максимизированы. Этот режим - «режим адаптации по умолчанию».
Этот шаблон используется в API Java Language, и все следует определенным спецификациям именования: Abstract + Имя интерфейса.
7. Общий принцип использования интерфейсов и абстрактных классов:
1. Используйте интерфейс в качестве окна для взаимодействия между системой и внешним миром. Стоя с точки зрения внешнего пользователя (другая система), интерфейс обещает пользователю, какие услуги может предоставить систему, и с точки зрения самой системы, какие услуги должен реализовать интерфейс. Интерфейс является абстрактным типом самого высокого уровня в системе. Благодаря взаимодействию интерфейса, система соединения A между двумя системами может быть улучшена для взаимодействия через систему B. Это означает, что когда система A доступна в системе B, эталонная переменная объявляет эталонную переменную как тип интерфейса в системе B. Эта эталонная переменная относится к экземпляру класса реализации интерфейса в системе B.
публичный интерфейс b {}
открытый класс C реализует B {}
открытый класс A {b a = new c (); }
2. Сам интерфейс Java должен быть очень стабильным. После того, как интерфейс Java будет сформулирован, он не разрешается идти, как это происходит, в противном случае он окажет влияние на внешних пользователей и саму систему. 3. Используйте абстрактные классы для настройки точек расширения в системе, а также абстрактные классы для завершения частичной реализации. Некоторые функции должны быть реализованы через его подклассы.
Приведенная выше статья подробно описывает концепции, классификации и отличия от абстрактных категорий интерфейсов Java - это все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.