0Pricing
Java Academy · Урок

Интерфейсы (введение и сравнение)

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

«Интерфейсы (введение и сравнение)» — бесплатный урок Java Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 3 уроков всего.

Что такое интерфейс?

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

Код: реализация интерфейса

Классы реализуют интерфейсы, обещая определённое поведение. На объект можно ссылаться через тип его интерфейса и вызывать объявленные методы.

public class Main {
  // Interface that declares a capability
  static interface Drivable {
    void drive(); // method to implement
  }

  // A class implements the interface
  static class Car implements Drivable {
    public void drive() {
      System.out.println("Car is driving");
    }
  }

  public static void main(String[] args) {
    Drivable d = new Car(); // upcast to interface
    d.drive();              // runs Car's method
  }
}

Интерфейсы и классы abstract

Класс abstract — отношение «является» с общим кодом. Интерфейс — возможность «умеет». Класс может расширять один класс, но реализовывать множество интерфейсов, что сохраняет гибкость проектирования и не допускает чрезмерно глубоких иерархий.

Код: метод по умолчанию

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

public class Main {
  // Interface with a default method (has a body)
  static interface Greeter {
    void greet(String name);
    default void sayBye() { // default provides a reusable tiny implementation
      System.out.println("Bye");
    }
  }

  static class SimpleGreeter implements Greeter {
    public void greet(String name) {
      System.out.println("Hello, " + name);
    }
  }

  public static void main(String[] args) {
    Greeter g = new SimpleGreeter();
    g.greet("Ada");
    g.sayBye(); // default method from the interface
  }
}

Несколько интерфейсов

Класс может одновременно реализовывать несколько интерфейсов, например Drivable и Maintainable. Это позволяет моделировать возможности, не навязывая фиксированную цепочку базовых классов.

Код: несколько интерфейсов

Один класс реализует оба интерфейса. В зависимости от контекста с ним можно работать как с Drivable, Maintainable или с его конкретным типом.

public class Main {
  static interface Drivable { void drive(); }
  static interface Maintainable { void maintain(); }

  static class ServiceCar implements Drivable, Maintainable {
    public void drive() { System.out.println("ServiceCar driving"); }
    public void maintain() { System.out.println("ServiceCar maintenance"); }
  }

  public static void main(String[] args) {
    ServiceCar s = new ServiceCar();
    s.drive();
    s.maintain();
  }
}

Проверка интерфейсов

Быстрая проверка: какое утверждение об интерфейсах в Java верно?

Итоги

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

Часто задаваемые вопросы

Урок «Интерфейсы (введение и сравнение)» бесплатный?

Да — полный текст урока «Интерфейсы (введение и сравнение)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 3 уроков всего.

Чему я научусь в уроке «Интерфейсы (введение и сравнение)»?

Определяйте интерфейсы, реализуйте их в классах и сравнивайте их с абстрактными классами. Изучите методы по умолчанию и множественную реализацию. Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.

Сколько времени занимает урок «Интерфейсы (введение и сравнение)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Абстрактные классы
  2. Интерфейсы (введение и сравнение)
  3. Восходящее и нисходящее приведение и instanceof
← Назад к Java Academy