Sobes.tech
Junior — Middle
56

Чем отличается объявление абстрактного класса от обычного класса в объектно-ориентированном программировании?

Компании, где спрашивали
СБЕР Бизнес
Вкусно и точкаВкусно и точка

Ответ от нейросети

sobes.tech AI

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

В Python абстрактный класс объявляется с помощью модуля abc и декоратора @abstractmethod:

from abc import ABC, abstractmethod

class AbstractClass(ABC):
    @abstractmethod
    def do_something(self):
        pass

class ConcreteClass(AbstractClass):
    def do_something(self):
        print("Реализация метода")

# AbstractClass() вызовет ошибку, а ConcreteClass() можно создать

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