В объектно-ориентированном программировании полезно определить, что должен делать класс, но не как.
Абстрактный метод определяет сигнатуру метода без предоставления реализации, и подкласс должен реализовать этот метод.
Интерфейс в Java позволяет полностью отделить определение того, что должно быть сделано, от реализации того, как это сделать.
Интерфейс может указывать методы без тела, которые должны быть реализованы классами.
Не существует ограничений на количество классов, которые могут реализовать интерфейс, и класс может реализовывать несколько интерфейсов.
Чтобы реализовать интерфейс, класс должен обеспечить реализацию описанных методов.
Разные классы могут реализовывать один и тот же интерфейс по-разному, но используют один и тот же набор методов.
Использование интерфейсов допускает полиморфизм, поскольку объекты из разных классов можно рассматривать как взаимозаменяемые.
В JDK 8 появилась возможность для интерфейсов определять реализации методов по умолчанию, что позволяет интерфейсу указывать поведение.
Несмотря на стандартные реализации, первоначальное намерение интерфейсов определять только то, что остается практически неизменным.
Первоначальное внимание будет уделено традиционным интерфейсам, а стандартные методы будут обсуждаться в конце главы.
имя интерфейса доступа {
ret-type имя-метода1(список-параметров);
ret-type имя-метода2(список-параметров);
введите var1 = значение;
тип var2 = значение;
// ...
ret-type имя-методаN(список-параметров);
тип varN = значение;
}
Доступ к интерфейсу может быть публичным или стандартным (частным для пакета).
Если модификаторы доступа не включены, интерфейс доступен только членам его пакета.
Когда интерфейс объявлен как общедоступный, интерфейс может использоваться любым кодом и должен находиться в файле с тем же именем.
Имя интерфейса может быть любым допустимым идентификатором.
В традиционной форме интерфейса методы объявляются только с указанием возвращаемого типа и сигнатуры, по существу являясь абстрактными методами.
Классы, реализующие этот интерфейс, должны предоставлять реализации для всех своих методов, которые неявно являются общедоступными.
Переменные в интерфейсе не являются переменными экземпляра; они неявно общедоступны, окончательны и статичны и должны быть инициализированы (они являются константами).
Пример определения интерфейса:
публичный интерфейс Серия {
ИНТ getNext(); // возвращает следующее число в серии
недействительный сброс(); // перезапуск
недействительный setStart (int x); // определяет начальное значение
}
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3