Что такое полиморфизм на простом примере?
Слово страшное, а смысл, говорят, простой. Можно короткий понятный пример на Python без академических определений?
3 ответа
Полиморфизм — это когда один и тот же вызов работает по-разному в зависимости от объекта. Ты зовёшь .sound(), а что именно произойдёт — решает сам объект.
class Cat:
def sound(self):
return "мяу"
class Dog:
def sound(self):
return "гав"
for animal in [Cat(), Dog()]:
print(animal.sound()) # мяу, потом гав
Цикл не знает и не должен знать, кто перед ним — кот или пёс. Он просто говорит "издай звук", а каждый объект отвечает по-своему. Это и есть полиморфизм: одинаковый интерфейс, разное поведение. Благодаря ему можно добавить класс Cow со своим sound(), и цикл выше менять не придётся.
"Много форм". Одна команда — len() — работает и со строкой, и со списком, и со словарём, хотя считает по-разному. Вот это оно и есть, ты им пользуешься каждый день.
Одинаковый вызов — разное поведение.