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 абстрагирует общее поведение: каждое животное издаёт звук и спит. Конкретная реализация звука определяется в наследниках.