Esistono molte differenze tra l'overload del metodo e l'override del metodo in Java. Di seguito è riportato un elenco delle differenze tra l'overload del metodo e l'override del metodo:
NO. | Sovraccarico del metodo | Metodo prioritario |
---|---|---|
1) | Viene utilizzato l'overload del metodo per aumentare la leggibilità del programma. | Viene utilizzato l'override del metodo per fornire l'implementazione specifica del metodo già fornito dalla sua super classe. |
2) | Viene eseguito l'overload del metodo all'interno della classe . | Si verifica l'override del metodo in due classi che hanno una relazione IS-A (ereditarietà). |
3) | In caso di sovraccarico del metodo, il parametro deve essere diverso . | In caso di override del metodo, il parametro deve essere lo stesso . |
4) | Il sovraccarico del metodo ne è un esempio polimorfismo in fase di compilazione . | L'override del metodo ne è un esempio Polimorfismo in fase di esecuzione . |
5) | In Java, l'overload del metodo non può essere eseguito modificando solo il tipo restituito del metodo. Il tipo di reso può essere uguale o diverso nel sovraccarico del metodo. Ma devi cambiare il parametro. | Il tipo restituito deve essere uguale o covariante nel metodo override. |
Esempio di sovraccarico del metodo 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;} }
Esempio di override del metodo Java
class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} }