Этот вопрос проверяет знание абстрактных методов, их назначения и применения в объектно-ориентированном программировании.
Абстрактный метод — это метод, который объявлен, но не имеет реализации. Класс с такими методами называется абстрактным, и его можно использовать только в качестве родительского.
Абстрактные методы нужны, чтобы задать общие интерфейсы для дочерних классов. Абстрактный метод объявляется, но не реализуется в базовом классе. Дочерние классы обязаны реализовать этот метод.
В Python абстрактные методы определяются с помощью модуля abc (abstract base class). Абстрактный класс нельзя инстанцировать.
Пример в Python:
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Гав!"
class Cat(Animal):
def speak(self):
return "Мяу!"
# animal = Animal() # Ошибка: нельзя создать экземпляр абстрактного класса
dog = Dog()
cat = Cat()
print(dog.speak()) # Гав!
print(cat.speak()) # Мяу!Когда использовать:
Когда нужно гарантировать, что все дочерние классы реализуют определённые методы.
Для создания интерфейсов, которые объединяют похожие классы.