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