Junior — Middle
77
Koja je razlika između deklaracije apstraktne klase i obične klase u objektno-orijentisanom programiranju?
Компаније где су питане
СБЕР Бизнес
Одговор од АИ
sobes.tech АИ
В объектно-ориентированном программировании абстрактный класс — это класс, который не предназначен для создания экземпляров напрямую, а служит как базовый класс для других классов. Он может содержать абстрактные методы — методы без реализации, которые должны быть реализованы в подклассах.
В 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() можно создать
Обычный класс не содержит абстрактных методов и может быть инстанцирован напрямую. Абстрактный класс служит для определения интерфейса и общей логики, которую должны реализовать наследники.