Existuje mnoho rozdílů mezi přetížením metody a přepsáním metody v jazyce Java. Níže je uveden seznam rozdílů mezi přetížením metody a přepsáním metody:
Ne. | Přetížení metody | Přepsání metody |
---|---|---|
1) | Používá se přetížení metody pro zvýšení čitelnosti programu. | Používá se přepsání metody zajistit konkrétní realizaci metody, kterou již poskytuje její supertřída. |
2) | Provádí se přetížení metody v rámci třídy . | Dojde k přepsání metody ve dvou třídách které mají IS-A (dědičnost) vztah. |
3) | V případě přetížení metody, parametr musí být jiný . | V případě přepsání metody, parametr musí být stejný . |
4) | Přetížení metody je příkladem kompilační časový polymorfismus . | Přepsání metody je příkladem polymorfismus doby běhu . |
5) | V Javě nelze přetížení metody provést pouze změnou návratového typu metody. Návratový typ může být stejný nebo odlišný v přetížení metody. Musíte ale změnit parametr. | Návratový typ musí být stejný nebo kovariantní v přepisování metody. |
Příklad přetížení metody 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;} }
Příklad přepisování metody Java
class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} }