Postoje mnoge razlike između preopterećenja metode i nadjačavanja metode u Javi. Popis razlika između preopterećenja metode i nadjačavanja metode dan je u nastavku:
| Ne. | Preopterećenje metode | Nadjačavanje metode |
|---|---|---|
| 1) | Koristi se preopterećenje metode za povećanje čitljivosti programa. | Koristi se nadjačavanje metode osigurati specifičnu implementaciju metode koju već nudi njegova super klasa. |
| 2) | Izvodi se preopterećenje metode unutar razreda . | Dolazi do nadjačavanja metode u dva razreda koji imaju odnos IS-A (nasljeđivanje). |
| 3) | U slučaju preopterećenja metode, parametar mora biti drugačiji . | U slučaju nadjačavanja metode, parametar mora biti isti . |
| 4) | Primjer je preopterećenje metode polimorfizam vremena kompajliranja . | Primjer je nadjačavanja metode polimorfizam vremena izvođenja . |
| 5) | U Javi se preopterećenje metode ne može izvršiti samo promjenom povratne vrste metode. Vrsta povrata može biti ista ili različita u preopterećenju metode. Ali morate promijeniti parametar. | Tip povrata mora biti isti ili kovarijantan u nadjačavanju metode. |
Primjer preopterećenja Java metode
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;} } Primjer nadjačavanja Java metode
class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} }