Хотелось бы узнать побольше про полиморфизм простыми словами и про его реализации потому что как я понял все везде спорят что нет полиморфизма, а есть только его реализации, про реализации я не очень понял, в смысле реализации?
Вот как я понял различные его реализации:
Или только вторая картинка это полиморфизм? Подскажите пожалуйста
В первом случае один и тот же метод, можно вызывать по разному, с разным количеством параметров
Это называется перегрузка методов, и да, это полиморфизм
Используется это для того что бы не писать разные функции которые делают одно и тоже, просто с разными типами данных. А что бы использовать одно и тоже имея, для разных параметров (например как ниже для второго случая)
Второй случай, через наследование можно вызывать одну и туже функцию с разными реализациями
Например у тебя есть массив животных (которые наследуются от Animal) и ты хочешь посмотреть у кого какой "звук"
Ты делаешь так
Animals[] animals = {new Cat(), new Dog(), new Cow(), new Cow(), new Dog()}
for (int i = 0; i < animals.length; i++)
animals[i].voise()
И получается что из за разных реализаций в разных классах наследниках, ты будешь получать разные результат, а вызываешь ты один и тот же метод в коде Иначе тебе бы тебе пришлось для каждого животного писать разные имена методов, и как то определять класс, вызывать подходящий метод этого класса и.т.д.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости