Diferenças entre overload e override

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!

Se este post foi útil para você, compartilhe abaixo contando sua experiência deixando uma mensagem ou avaliando o post.  Assim você também colabora ajudando outros aqui também!