Existuje veľa rozdielov medzi preťažením metódy a prepísaním metódy v jazyku Java. Nižšie je uvedený zoznam rozdielov medzi preťažením metódy a prepísaním metódy:
Nie | Preťaženie metódy | Prepísanie metódy |
---|---|---|
1) | Používa sa preťaženie metódy na zvýšenie čitateľnosti programu. | Používa sa prepísanie metódy zabezpečiť konkrétnu realizáciu metódy, ktorú už poskytuje jej supertrieda. |
2) | Vykonáva sa preťaženie metódy v rámci triedy . | Vyskytne sa prepísanie metódy v dvoch triedach ktoré majú IS-A (dedičný) vzťah. |
3) | V prípade preťaženia metódy, parameter musí byť iný . | V prípade prepísania metódy, parameter musí byť rovnaký . |
4) | Preťaženie metódy je príkladom kompilačný časový polymorfizmus . | Prepísanie metódy je príkladom polymorfizmus doby behu . |
5) | V jave sa preťaženie metódy nedá vykonať iba zmenou typu návratu metódy. Typ návratu môže byť rovnaký alebo odlišný pri preťažení metódy. Musíte však zmeniť parameter. | Návratový typ musí byť rovnaký alebo kovariantný pri prepisovaní metódy. |
Príklad preťaženia metódy 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;} }
Príklad prepísania metódy Java
class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} }