Демонстрация полиморфизма в классах Python:
Полиморфизм — это фундаментальная концепция объектно-ориентированного программирования, которая позволяет рассматривать объекты разных классов как объекты общего суперкласса. В Python полиморфизм может быть достигнут посредством переопределения и перегрузки методов. Вот несколько методов демонстрации полиморфизма в классах Python:
- Переопределение метода:
Переопределение метода происходит, когда подкласс определяет метод с тем же именем, что и метод в его суперклассе, тем самым обеспечивая другую реализацию. Вот пример:
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(): один с двумя параметрами, а другой с тремя параметрами. В зависимости от количества переданных аргументов вызывается соответствующий метод. Это демонстрирует полиморфное поведение.