Інтерфейси в Java

Вступ до обʼєктно-орієнтованого програмування в Java

Sani Yusuf

Lead Software Engineering Content Developer

Обмеження наслідування

  • За наслідування всі члени успадковуються
  • Не можна вибірково успадковувати члени

  // Клас Car   
  class Car {
    // Місткість батареї стосується лише
    // електромобілів
    public int batteryCapacity;

    void drive() {

    }  
  }


  // Клас Toyota
  class Toyota extends Car {  
    void drive(){

    }           
  }


// Клас Main public static class Main { public static void main(String[] args) { Toyota myToyota = new Toyota(); // Усі автомобілі успадкують "batteryCapacity", // навіть якщо це не електрокари System.out.println( myToyota.batteryCapacity); // Не застосовується } }
Вступ до обʼєктно-орієнтованого програмування в Java

Створення інтерфейсів

  • Інтерфейси дають змогу вибірково задавати властивості та методи
  • Класи підключають інтерфейси через ключове слово implements

  // Інтерфейс ElectricCar 
  interface ElectricCar {

  }





  // Tesla реалізує
  // інтерфейс ElectricCar
  class Tesla implements ElectricCar {

  }








Вступ до обʼєктно-орієнтованого програмування в Java

Додавання властивостей до інтерфейсів

  • Для властивостей зазвичай використовують UPPER_SNAKE_CASE
  • Значення задається одразу і не може змінюватися
  • Властивості неявно є public static final

  interface ElectricCar {
    // Неявно public static final
    // Не можна змінити
    int BATTERY_CAPACITY = 310;

  }




Вступ до обʼєктно-орієнтованого програмування в Java

Додавання методів інтерфейсу

  • Інтерфейси зазвичай містять методи
  • Методи типово abstract, без реалізації коду
  • В інтерфейсах можуть бути конкретні методи з реалізацією
  • Усі abstract методи треба реалізувати в підкласі
  interface ElectricCar {
    // Неявно public static final
    // Не можна змінити
    int BATTERY_CAPACITY = 310;


// Це абстрактний метод за замовчуванням void charge();
// Це конкретний метод void autoPark() { }
}
class Tesla implements ElectricCar { // Потрібно реалізувати public void charge() { } }
Вступ до обʼєктно-орієнтованого програмування в Java

Давайте потренуємось!

Вступ до обʼєктно-орієнтованого програмування в Java

Preparing Video For Download...