Встречается на 10% собеседований по Python
Что такое абстрактные классы
Абстрактный класс - это класс, который является классом-шаблоном для других классов. Он содержит один или несколько абстрактных методов. Он не предназначен для создания объектов напрямую.
Абстрактный метод - это метод, который объявлен в абстрактном классе, но не имеет реализации. Он служит как бы шаблоном для метода, который должен быть реализован в подклассах.
python
from abc import ABC, abstractmethod
class Animal(ABC):
def __init__(self, name, age):
self.name = name
self.age = age
@abstractmethod
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Woof!"
class Cat(Animal):
def make_sound(self):
return "Meow!"Зачем они нужны?
- Чтобы создать общий интерфейс
- Классы будут иметь общие методы и свойства, но могут реализовывать их по-разному.
- Все дочерние классы должны будут обязательно иметь реализацию каждого абстрактного метода, поэтому мы точно будем уверены, что во всех классах, созданных на основе абстрактного класса, будет иметься реализация абстрактных методов
- Устранение дублирования кода
- Например вынести метод init в абстрактный класс
Oct. 9, 2023, Источник
Похожие вопросы
- Какие паттерны программирования знаешь10%
- Что такое git10%
- Отличия rebase от merge10%
- Что тебе известно про нереляционные базы данных10%
- Что знаешь о сложности алгоритма10%
- Какие магические методы и для чего используются10%
- Как работает middleware10%
- расскажите с какими проблемами сталкивались в своих проектах10%
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
