Java

Что такое полиморфизм и для чего он нужен? Java

Что такое полиморфизм и для чего он нужен? Java
Полиморфизм — это способность функции обрабатывать данные разных типов.

Из Википедии (обсуждается всеми знакомый Ad-hoc-полиморфизм):
"Поддерживается во многих языках посредством перегрузки функций и методов, а в слабо типизированных — также посредством приведения типов."
ОПРЕДЕЛЕНИЯ:
• Перегрузка функций — возможность использования нескольких функций под одним именем;
• Приведение типов — преобразование одного типа к другому.

===== Пример 1:
Путем перегрузки функции =====
int plus(int a, int b) { return a + b; }
float plus(float a, float b) { return a + b; }
double plus(double a, double b) { return a + b; }

===== Пример 2:
Путем приведения типов =====
Object plus(Object a, Object b) {
if (a instanceof Integer && b instanceof Integer) {
Integer aInt = (Integer) a;
Integer bInt = (Integer) b;
return aInt + bInt;
} else if(...) {
// ...
}
}

ТАКЖЕ есть так называемый параметрический полиморфизм. Вот пример реализации на языке Java:
public <T extends Animal> void process(T animal);
Александр Журавлёв
Александр Журавлёв
1 675
Лучший ответ
Полиморфизм это типо наследование и всё что с ним связано.

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

UPD: Например, оверайдинг методов нужен для переопределения поведения потомка. Допустим, есть класс Частица, от которого наследуются классы Протон и Нейтрон. В классе частица есть метод масса(). Логично, что у Протона и Нейтрона разные массы, поэтому мы переопределяем у них метод масса() со своим значением
Александр Гетьман Держите, тут уже усё есть, с ответами
https://github.com/enhorse/java-interview