Встречается на собеседованиях • сегодня

Связан ли полиморфизм подтипов c принципом подстановки Лисков (Liskov substitution)

Да, полиморфизм подтипов напрямую связан с принципом подстановки Лисков (LSP). LSP — это частный случай полиморфизма подтипов, который гарантирует, что объекты подтипа могут заменять объекты родительского типа без изменения корректности программы.

Пример на Python:

python
class Bird:
    def fly(self):
        print("Flying")

class Duck(Bird):
    def fly(self):
        print("Duck flying")

class Ostrich(Bird):  # Нарушает LSP
    def fly(self):
        raise Exception("Can't fly")

def make_bird_fly(bird: Bird):
    bird.fly()  # Для Ostrich выбросит исключение

В этом примере Ostrich нарушает LSP, так как не может быть подставлен везде, где ожидается Bird. Правильная иерархия должна сохранять поведение базового класса.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы