Existem muitas diferenças entre sobrecarga de método e substituição de método em java. Uma lista de diferenças entre sobrecarga de método e substituição de método é fornecida abaixo:
Não. | Sobrecarga de método | Substituição de método |
---|---|---|
1) | A sobrecarga de método é usada para aumentar a legibilidade do programa. | A substituição de método é usada para fornecer a implementação específica do método que já é fornecido por sua superclasse. |
2) | A sobrecarga do método é executada dentro da aula . | A substituição do método ocorre em duas aulas que possuem relacionamento IS-A (herança). |
3) | Em caso de sobrecarga do método, o parâmetro deve ser diferente . | No caso de substituição de método, parâmetro deve ser o mesmo . |
4) | A sobrecarga de método é o exemplo de polimorfismo em tempo de compilação . | A substituição de método é o exemplo de polimorfismo de tempo de execução . |
5) | Em Java, a sobrecarga do método não pode ser executada alterando apenas o tipo de retorno do método. O tipo de retorno pode ser igual ou diferente na sobrecarga de método. Mas você deve alterar o parâmetro. | O tipo de retorno deve ser igual ou covariante na substituição de método. |
Exemplo de sobrecarga de método 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;} }
Exemplo de substituição de método Java
class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} }