НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування Java. W3Schools українською. Уроки для початківців

En

Java Абстракція


Абстрактні класи та методи

Абстракція (абстрагування) даних – це процес приховування певних деталей і відображення лише важливої інформації для користувача.
Абстракції можна досягти за допомогою абстрактних класів або інтерфейсів (про які ви дізнаєтеся більше в наступному розділі).

Ключове слово abstract є модифікатором доступу, який використовується для класів і методів:

  • Абстрактний клас: це обмежений клас, який не можна використовувати для створення об’єктів (щоб отримати до нього доступ, його потрібно успадкувати від іншого класу).
  • Абстрактний метод: можна використовувати лише в абстрактному класі, і він не має тіла. Тіло надається підкласом (успадковується від).

Абстрактний клас може мати як абстрактні, так і звичайні методи:

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}

З наведеного вище прикладу неможливо створити об’єкт класу Animal:

Animal myObj = new Animal(); // згенерує помилку

Щоб отримати доступ до абстрактного класу, його потрібно успадкувати від іншого класу. Давайте перетворимо клас Animal, який ми використовували в розділі Поліморфізм, на абстрактний клас:

Пам’ятайте з розділу про успадкування, що ми використовуємо ключове слово extends для успадкування від класу.

Приклад

// Абстрактний клас
abstract class Animal {
  // Абстрактний метод (не має тіла)
  public abstract void animalSound();
  // Звичайний метод
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Підклас (успадковано від Animal)
class Pig extends Animal {
  public void animalSound() {
    // Тіло animalSound() надається тут
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Створити об’єкт Pig
    myPig.animalSound();
    myPig.sleep();
  }
}
Спробуйте самі »

Чому і коли використовуються абстрактні класи та методи?

Щоб забезпечити безпеку, приховайте певні деталі та показуйте лише важливі деталі об’єкта.

Примітка: абстракції також можна досягти за допомогою інтерфейсів, про які ви дізнаєтеся більше в наступному розділі.