Ответ
Абстракция — это принцип ООП, который скрывает сложную реализацию и показывает только необходимые пользователю детали. Это достигается через абстрактные классы и интерфейсы.
Пример на Java:
// Абстрактный класс определяет общий контракт, скрывая детали реализации
abstract class Animal {
// Абстрактный метод — реализация будет в подклассах
abstract void makeSound();
// Конкретный метод — общая реализация для всех животных
void sleep() {
System.out.println("Zzz");
}
}
// Конкретный класс реализует абстрактный метод
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Woof!");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.makeSound(); // Вывод: Woof!
myDog.sleep(); // Вывод: Zzz
}
}
Почему это абстракция:
- Пользователь кода (
Main) работает с объектом типаAnimal. - Ему не нужно знать, как именно
Dogиздает звук — эта деталь скрыта. - Он знает только что может сделать (
makeSound(),sleep()).