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...');} }