Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Интерфейсы в Java: определение, использование и лучшие практики

Интерфейс — ссылочный тип, похожий на класс. Содержит абстрактные методы. Класс реализует интерфейс (implements), тем самым наследуя его абстрактные методы.

Особенности интерфейсов

Объявление интерфейса


public interface NameOfInterface {
    // константы
    // абстрактные методы
}

abstract и public для методов не обязательны (неявны).

Пример


interface Animal {
    void eat();
    void travel();
}

Реализация интерфейса

Класс-«контракт» обязан реализовать все методы (если не abstract).


public class MammalInt implements Animal {
    public void eat() { System.out.println("Mammal eats"); }
    public void travel() { System.out.println("Mammal travels"); }
    public int noOfLegs() { return 0; }
    public static void main(String args[]) {
        MammalInt m = new MammalInt();
        m.eat(); m.travel();
    }
}

Результат: Mammal eats Mammal travels

Правила переопределения методов интерфейса

Расширение интерфейсов

Интерфейс может расширять другой интерфейс (extends). Дочерний наследует методы родителя.


interface Sports { void setHomeTeam(String name); void setVisitingTeam(String name); }
interface Football extends Sports { void homeTeamScored(int points); ... }
interface Hockey extends Sports { void homeGoalScored(); ... }

Класс, реализующий Hockey, должен реализовать все 6 методов (4 своих + 2 из Sports).

Множественное расширение интерфейсов

Интерфейс может расширять несколько интерфейсов через запятую:


public interface Hockey extends Sports, Event { ... }

Маркерные интерфейсы (Tagging Interfaces)

Интерфейсы без методов. Две цели:

  1. Общий родитель: например, EventListener — маркер для слушателей событий.
  2. Добавление типа: класс, реализующий маркерный интерфейс, становится этим типом через полиморфизм, не реализуя методы.

package java.util;
public interface EventListener {}

java

  1. Ключевое слово final в Java: переменные, методы и классы
  2. Оператор instanceof в Java: полное руководство с примерами
  3. Интерфейсы в Java: концепции, реализация и лучшие практики
  4. Статические вложенные классы в Java: использование, отличия и примеры
  5. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  6. Паттерн Singleton в Java: как реализовать и безопасно использовать
  7. Рефлексия в Java: инспекция классов, методов и полей во время выполнения
  8. Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
  9. Освоение Java Generics: создание переиспользуемого, типобезопасного кода
  10. Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление