Існує багато відмінностей між перевантаженням методів і перевизначенням методів у java. Нижче наведено список відмінностей між перевантаженням і перевизначенням методів:
Немає. | Перевантаження методу | Перевизначення методу |
---|---|---|
1) | Використовується перевантаження методу для підвищення читабельності програми. | Використовується перевизначення методу забезпечити конкретну реалізацію методу, який уже надається його суперкласом. |
2) | Виконується перевантаження методу в межах класу . | Відбувається перевизначення методу у двох класах які мають зв’язок IS-A (успадкування). |
3) | У разі перевантаження методу, параметр повинен відрізнятися . | У разі перевизначення методу, параметр повинен бути однаковим . |
4) | Прикладом є перевантаження методів поліморфізм часу компіляції . | Перевизначення методу є прикладом поліморфізм часу виконання . |
5) | У java перевантаження методу не можна виконати, лише змінивши тип повернення методу. Тип повернення може бути однаковим або іншим у перевантаженні методу. Але вам доведеться змінити параметр. | Повернений тип має бути однаковим або коваріантним у перевизначенні методу. |
Приклад перевантаження методу Java
class OverloadingExample{ static int add(int a,int b){return a+b;} static int add(int a,int b,int c){return a+b+c;} }
Приклад перевизначення методу Java
class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} }