Sobes.tech
Back to questions
Junior — Middle
49

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

Companies where asked
СБЕР Бизнес
Вкусно и точкаВкусно и точка

Answer from AI

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() можно создать

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