Исследование полиморфизма в классах Python: переопределение и перегрузка метода

Демонстрация полиморфизма в классах Python:

Полиморфизм — это фундаментальная концепция объектно-ориентированного программирования, которая позволяет рассматривать объекты разных классов как объекты общего суперкласса. В Python полиморфизм может быть достигнут посредством переопределения и перегрузки методов. Вот несколько методов демонстрации полиморфизма в классах Python:

  1. Переопределение метода:
    Переопределение метода происходит, когда подкласс определяет метод с тем же именем, что и метод в его суперклассе, тем самым обеспечивая другую реализацию. Вот пример:
class Animal:
    def sound(self):
        print("Animal makes a sound.")
class Dog(Animal):
    def sound(self):
        print("Dog barks.")
class Cat(Animal):
    def sound(self):
        print("Cat meows.")
# Polymorphic behavior
animals = [Dog(), Cat()]
for animal in animals:
    animal.sound()

Выход:

Dog barks.
Cat meows.

В приведенном выше примере классы Dogи Catнаследуются от класса Animalи переопределяют sound()со своими собственными реализациями. Когда мы перебираем список animals, метод sound()вызывается для каждого объекта, и соответствующий звук выводится на основе класса объекта.

<старый старт="2">

  • Перегрузка метода.
    Перегрузка метода в Python достигается с помощью аннотаций функций и аргументов по умолчанию. Хотя Python не поддерживает настоящую перегрузку методов, мы можем смоделировать ее, определив несколько методов с одинаковым именем, но разными параметрами. Вот пример:
  • class MathOperations:
        def add(self, a, b):
            return a + b
        def add(self, a, b, c):
            return a + b + c
    math = MathOperations()
    # Polymorphic behavior
    print(math.add(1, 2))       # Output: 3
    print(math.add(1, 2, 3))    # Output: 6

    В приведенном выше примере класс MathOperationsопределяет два метода add(): один с двумя параметрами, а другой с тремя параметрами. В зависимости от количества переданных аргументов вызывается соответствующий метод. Это демонстрирует полиморфное поведение.