Gymterview
junior

Что такое абстракция?

Абстрагирование — способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Абстракция — набор всех таких характеристик.

Аналогия: водитель за рулём не думает о химическом составе краски или взаимодействии шестерёнок — он работает с рулём, педалями и указателем поворота.

В Java абстракция реализуется через два механизма:

  • Абстрактные классы (abstract class) — содержат как абстрактные методы (без реализации), так и обычные методы.
  • Интерфейсы (interface) — определяют контракт. С Java 8+ поддерживают default- и static-методы, с Java 9+ — private-методы.

Пример

Пример
abstract class Animal {

    public abstract void animalSound();

    public void sleep() {
        System.out.println("Zzz");
    }
}

class Pig extends Animal {

    @Override
    public void animalSound() {
        System.out.println("Хрю-хрю");
    }
}

Класс Animal абстрагирует общее поведение: каждое животное издаёт звук и спит. Конкретная реализация звука определяется в наследниках.