Встречается на собеседованиях • сегодня
В чем разница между абстрактным класом и интерфейсом
Основные различия между интерфейсом и абстрактным классом в Python:
- Назначение:
- Интерфейс определяет только сигнатуры методов (что делать)
- Абстрактный класс может содержать реализацию (как делать)
- Реализация:
- В Python интерфейсы реализуются через ABC (Abstract Base Classes) с
@abstractmethod - Абстрактный класс может содержать как абстрактные, так и обычные методы
- Наследование:
- Класс может реализовывать несколько интерфейсов
- Класс может наследоваться только от одного абстрактного класса
Пример:
python
from abc import ABC, abstractmethod
# Интерфейс
class Flyable(ABC):
@abstractmethod
def fly(self):
pass
# Абстрактный класс
class Animal(ABC):
@abstractmethod
def make_sound(self):
pass
def sleep(self):
print("Zzz...")
# Реализация
class Bird(Animal, Flyable):
def make_sound(self):
print("Chirp!")
def fly(self):
print("Flying high")
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы