Ola!
OVERRIDE É PROVER UMA NOVA IMPLEMENTAÇÃO DE MÉTODOS DA SUPERCLASSE (COM A MESMA ASSINATURA)
Li isto em um tutorial e fiquei voando…alguem me dah uma explicacao melhor?!
Se puderem fazer um paralelo com “overload” seria bom…
Bjos
Giovana
Ola!
OVERRIDE É PROVER UMA NOVA IMPLEMENTAÇÃO DE MÉTODOS DA SUPERCLASSE (COM A MESMA ASSINATURA)
Li isto em um tutorial e fiquei voando…alguem me dah uma explicacao melhor?!
Se puderem fazer um paralelo com “overload” seria bom…
Bjos
Giovana
Overload eh qdo vc modifica a assinatura do metodo para que ele possa atender a varias situacoes de uso. Por exemplo, digamos que voce tenha um metodo para fechar algum documento… como opcional, voce poderia querer informar se, ao fechar, eh para automaticamente salvar as alteracos…
Portando, ao inves de fazer
...
public void fechar()
{
// fecha a aplicacao
}
public void salvaFecha()
{
// salva e entao fecha
}
voce poderia fazer
public void fecha()
{
this.fecha(false);
}
public void fecha(boolean salvar)
{
if (salvar) {
// salva o documento
}
// fecha o documento
}
Ou seja, voce tem dois metodos com nomes iguais, mas com assinaturas diferentes… internamente eh como se eles fossem metodos diferentes…
Override eh quando voce sobrescreve o funcionamento de determinado metodo… Isso soh eh possivel quando voce herda de alguma outra classe… Por exemplo, digamos que voce tenha a classe Pessoa e a classe Maratonista. Ambos caminham, certo? porem, um maratonista caminha mais rapido que uma pessoal normal ( ha outras varias coisas em comum entre eles, como em qualquer pessoa )…
class Pessoa {
public void andar() {
// codigo para andar de uma
// pessoa comum
}
}
class Maratonista extends Pessoa {
// um maratonista caminha mais rapido
// que uma pessoa normal.. portanto,
// o metodo "andar" deve tratar isso
public void andar() {
// ...
}
}
veja que Maratonista extende Pessoa, e ambos tem um metodo andar()… No caso de Maratonista, andar() eh um override de andar() do metodo pessoa, ja que a assinatura eh exatamente igual.
Se voce adicionasse o metodo andar(int velocidade) na classe Maratonista, este metodo seria um overload, pois apesar do nome do metodo ser igual, a assinatura eh diferente…
Rafael
no fim, overload nao tem NADA com override
Valeu rapazes…
Beijao aos dois.
Giovana