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

Что такое полиморфизм подтипов

Полиморфизм подтипов (subtype polymorphism) — это возможность использовать объекты подтипов (наследников) там, где ожидается объект базового типа. Это основано на принципе подстановки Барбары Лисков (LSP): если S подтип T, то объекты типа T можно заменить объектами типа S без изменения корректности программы.

Пример в Python (утиная типизация позволяет реализовать это без явного наследования):

python
class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Woof!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

def animal_sound(animal: Animal):
    print(animal.speak())

# Все три вызова работают благодаря полиморфизму подтипов
animal_sound(Animal())  # Базовый тип
animal_sound(Dog())     # Подтип
animal_sound(Cat())     # Подтип

Ключевые особенности:

  • Объекты подклассов могут использоваться вместо объектов родительского класса
  • Методы подклассов переопределяют поведение родительских методов
  • В Python реализуется через наследование и переопределение методов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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