Sobes.tech
Back to questions
Junior — Middle
72

Можете объяснить, что подразумевается под абстракцией в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

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

Например, класс "Автомобиль" может иметь методы завести(), ехать(), тормозить(), при этом внутренние механизмы работы двигателя или трансмиссии скрыты от пользователя класса.

В Python абстракция достигается через создание классов с методами, которые описывают поведение, а детали реализации могут быть скрыты внутри методов или через использование абстрактных базовых классов (модуль abc).

Пример:

from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def make_sound(self):
        pass

class Dog(Animal):
    def make_sound(self):
        print("Гав-гав")

# Использование
my_dog = Dog()
my_dog.make_sound()  # Выведет: Гав-гав

Здесь Animal задаёт абстрактный интерфейс, а конкретные классы реализуют детали.