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() можно создать
Обычный класс не содержит абстрактных методов и может быть инстанцирован напрямую. Абстрактный класс служит для определения интерфейса и общей логики, которую должны реализовать наследники.