Quais as diferenças entre overload e override?
São características do polimorfismo.
Overload:
1)Métodos sobrecarregados(overloaded) podem aparecer na mesma classe ou subclasse.
2)Tem a lista de parametros diferentes e podem ter o tipo de retorno diferente. Ex:
public class Calcula {
// testa métodos quadrado sobrecarregados(Overloaded)
public void testa() {
System.out.printf( “O quadrado do inteiro 5 é %d\n”, quadrado( 5 ) );
System.out.printf( “O quadrado do double 6.5 é %f\n”, quadrado( 6.5 ) );
}
// o método quadrado com argumento inteiro
public int quadrado( int intNum ) {
System.out.printf( “\nO método quadrado foi passado passando argumento inteiro: %d\n”,
intNum );
return intNum * intNum;
}
// O método quadrado com argumento double
public double quadrado( double doubleNum ) {
System.out.printf( “\nO método quadrado foi passado passando argumento double: %f\n”,
doubleNum );
return doubleNum * doubleNum;
}
}
para testar o código acima:
public class TestaOverload{
public static void main(String [] args){
Calcula calcula = new Calcula();
calcula.testa();
}
}
- Faça download do código fonte em Java Overload aqui.
Override:
Acontece quando um método escrito na classe superior é reescrito(override) na subclasse com a mesma lista de parametros e tipos de retorno. Ex.:
// Esta classe automaticamente extende de object que tem um método chamada toString()
// mas eu quero ou preciso reescrevê-lo
public class Cliente{
private String nome;
private int id;
//… getters, setters e construtores
// este método já é herdado automaticamente de object. Neste momento estamos sobreescrevendo o //método
public String toString(){
System.out.println(”Nome cliente: ” + this.cli + ” ” + “Id Cliente: ” + this.id);
}
}
Até a próxima!
Veja o profile de Alysson Vasconcelos no Linkedin