Există multe diferențe între supraîncărcarea metodei și suprascrierea metodei în java. O listă a diferențelor dintre supraîncărcarea metodei și suprascrierea metodei este prezentată mai jos:
Nu. | Supraîncărcarea metodei | Suprascrierea metodei |
---|---|---|
1) | Se folosește supraîncărcarea metodei pentru a crește lizibilitatea a programului. | Se folosește suprascrierea metodei pentru a oferi implementarea specifică a metodei care este deja furnizată de superclasa sa. |
2) | Se realizează supraîncărcarea metodei în cadrul clasei . | Are loc depășirea metodei în două clase care au relație IS-A (moștenire). |
3) | În cazul supraîncărcării metodei, parametrul trebuie să fie diferit . | În cazul depășirii metodei, parametrul trebuie să fie același . |
4) | Supraîncărcarea metodei este exemplul compilează polimorfismul temporal . | Suprascrierea metodei este exemplul polimorfismul timpului de rulare . |
5) | În java, supraîncărcarea metodei nu poate fi efectuată doar prin schimbarea tipului de returnare al metodei. Tipul de returnare poate fi același sau diferit în supraîncărcarea metodei. Dar trebuie să schimbați parametrul. | Tipul de returnare trebuie să fie același sau covariant în depășirea metodei. |
Exemplu de supraîncărcare a metodei 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;} }
Exemplu de suprascriere a metodei Java
class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} }