1. Интерфейс: «специальный класс», который более тщательно рассматривает классы и может содержать только абстрактные методы в интерфейсе. Интерфейс не заботится о данных внутренних состояний класса и определяет спецификации, которые соблюдает партия классов. (Он только предусматривает, что в этой партии классов должны быть предоставлены определенные методы, и предоставление этих методов может соответствовать фактическим требованиям).
На языке программирования Java это абстрактный тип, набор абстрактных методов, а интерфейсы обычно объявляются как интерфейс. Класс наследует абстрактные методы интерфейса, наследуя интерфейс.
Интерфейсы не являются классами, и то, как они пишут интерфейсы, очень похоже на классы, но они принадлежат к разным концепциям. Класс описывает свойства и методы объекта. Интерфейс содержит методы, которые будут реализованы классом.
Если класс, который реализует интерфейс, не является абстрактным классом, класс определяет все методы в интерфейсе.
Интерфейс не может быть создан, но может быть реализован. Класс, который реализует интерфейс, должен реализовать все методы, описанные в интерфейсе, в противном случае он должен быть объявлен как абстрактный класс. Кроме того, в Java типы интерфейсов могут использоваться для объявления переменной, они могут быть нулевым указателем или связаны с объектом, реализованным с этим интерфейсом.
Определение: [Модификатор] Имя интерфейса интерфейса Extends Parent Interface 1, Интерфейс назначения 2, ... // Нет Extends Parent Interface 1 ... предназначен для определения интерфейса
{
// нулевой до нескольких постоянных определений ...
// нулевая до нескольких абстрактных методов экземпляра ...
}
[Синтаксис Описание]: 1. Модификатор может быть публичным или опущенным. Если символ управления публичным доступом опущен, это разрешение на доступ к пакетам.
2. Все участники интерфейса публично изменены, потому что интерфейс является общедоступным и может быть доступен всеми классами. Модификация атрибута по умолчанию в интерфейсе: publicstaticfinal. Независимо от того, написан ли атрибут или нет, изменение по умолчанию того же метода: publicabstract, внутренний класс: Publicstatic. Они будут добавлены по умолчанию.
3. В членах не может быть конструкторов, и не может быть блоков инициализации.
4. Исходный файл Java может определять только один интерфейс, потому что он публично изменен, а хранимое имя должно быть таким же, как именем общедоступного класса, а интерфейс можно рассматривать как специальный класс.
2. Наследство интерфейса: интерфейс может иметь несколько прямых родительских интерфейсов, а интерфейс может наследовать только интерфейсы, но не классы.
[Примечание]: а. Дочерний интерфейс наследует родительский интерфейс и получит все абстрактные методы, постоянные атрибуты, внутренние классы и другие определения, определенные в родительском интерфейсе.
3. Использование интерфейса: синтаксис: [Modifier] Имя класса Extends Parent Class Interface 1, интерфейс 2 ... {Body Class}.
【Меры предосторожности】
а Описание: класс может наследовать родительский класс и несколько интерфейсов одновременно, но расширение должно быть размещено после орудий.
беременный Интерфейс не может создать экземпляр, но он может объявить переменные, но он должен относиться к объекту своего класса реализации.
в Основная цель - реализована классом.
дюймовый Метод реализации: используйте ключевое слово реализации
эн. После того, как класс наследует интерфейс, он должен полностью реализовать все абстрактные методы, определенные в этих интерфейсах (то есть переписать эти методы класса в подклассе). В противном случае, если он не полностью реализован, то этот класс может быть определен только как абстрактный класс.
фон При переоценке метода интерфейса модификатор может быть только больше или равным, чем родительский класс, поэтому он также должен быть публичным модификатором.
глин Все переменные типа интерфейса могут быть непосредственно назначены переменным типа объекта.
Разместите пример кода (цитируется к сумасшедшей Java от Li Gang):
// Определить выходной интерфейс интерфейса интерфейса {// Атрибут может быть определен только как константы int max_cache_line = 50; // в основном определять пространство хранения // Аннотация метод, определенный в интерфейсе, может быть только публичным void Out (); void getData (String MSG); } // Определить продукт интерфейса интерфейса {int getProducetime (int a); } // Пусть класс принтера реализует определенный интерфейс открытый класс принтер реализует выход, продукт {private String [] printData = new String [max_cache_line]; private int datanum = 0; public void Out () // Перепишите метод вывода родительского интерфейса {while (datanum> 0) {System.out.println ("print print"+printData [0]); System.ArrayCopy (printData, 1, printData, 0,-datanum); }} public void getData (String msg) // Перепишите метод вывода родительского интерфейса {if (datanum> = max_cache_line) {System.out.println ("full"); } else {printData [datanum ++] = msg; }} public int getProducetime (int a) // Перепишите метод продукта родительского интерфейса {return a = a; } public static void main (string [] args) {// родительский интерфейс может объявлять переменные, но не может создавать экземпляры, полиморфизм: объявление вывода, но созданный экземпляр - вывод принтера o = new Printer (); O.getData ("xiuxiu"); O.out (); // непосредственно вызовать метод вывода // родительский интерфейс может объявлять переменные, но не может создавать экземпляры, полиморфизм: объявление вывода, но созданный экземпляр - продукт принтера p = новый принтер (); System.out.println (p.getProducetime (82)); // Все эталонные переменные типа интерфейса могут быть непосредственно присваиваются напрямую для объекта типа объекта объект obj = p; Объект obj1 = o; }}4. Сходства и различия между абстрактными классами и интерфейсами:
такой же:
1. Все абстрактные методы.
2. Ни один экземпляр не может быть создан.
3. Подклассы должны реализовать все абстрактные методы внутри них после наследства. Если они не полностью реализованы, класс может быть определен только как абстрактный класс.
Другой:
1. В интерфейсе могут быть только абстрактные методы и обычные методы в абстрактном классе.
2. Атрибуты в классе интерфейса имеют модификатор Publicstaticfinal по умолчанию, но атрибуты в абстрактном классе могут быть обычными.
3. Интерфейс не имеет блока инициализации, но он находится в абстрактном классе.
4. Интерфейс может иметь несколько родительских интерфейсов, но абстрактный класс может иметь только один родительский класс.
Суммировать
Выше приведено примеры интерфейса и использования в Java. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это.