Примеры полиморфизма

1. Полиморфизм через переопределение методов (Override)

Разные классы реализуют один и тот же метод по-своему.

class Dog:
    def speak(self):
        return "Гав"

class Cat:
    def speak(self):
        return "Мяу"

for animal in [Dog(), Cat()]:
    print(animal.speak())

Вывод:

Гав
Мяу

📌 Один и тот же вызов speak() ведёт себя по-разному для разных объектов.


2. Полиморфизм через наследование

Один интерфейс в базовом классе — разные реализации в наследниках.


3. Полиморфизм через функции

Функция не проверяет тип объекта — она просто вызывает метод, который предполагается у него есть (duck typing).

📌 Главное, чтобы у объекта был метод speak(), а не его тип.


4. Полиморфизм в автоматизации тестирования (Page Object Model)

Разные страницы реализуют один и тот же метод по-разному, но тесты используют его одинаково.

📌 Тесту не важно, какая страница — он просто вызывает open().


Коротко суть

  • Интерфейс одинаковый (метод с одним именем).

  • Реализация разная (зависит от объекта).

  • В Python это часто реализуется через наследование или duck typing.

Last updated

Was this helpful?