2
respostas

A anotação @Override Próxima Atividade Na última aula vimos sobre a anotação @Override. Qual a finalidade dela? A resposta informada como correta dá uma idéia errada.

Exercício: A anotação @Override Próxima Atividade Na última aula vimos sobre a anotação @Override. Qual a finalidade dela?

A resposta informada como correta: É usada para sobrescrever o método da classe mãe, indicando que o método original foi alterado.

--> Ela não realiza, apenas informa.

2 respostas

Oi, Alexandre. Tudo bem?

Bem observado, só a anotação @Override sozinha não é capaz de fazer alterações no código. Então vamos lá, afinal de contas, para que serve a anotação?

Vamos dar uma olhada nesses dois métodos, sem o @Override:

public class SuperClasse {
    public void hello() {
        System.out.println("hello world");
    }
}

public class Classe extends SuperClasse {
    public void hello() {
        System.out.println("hello brazil");
    }
}

Perceba que tudo está indo bem até aqui, o método hello() da Classe sobrescreve o método de mesmo nome da SuperClasse mesmo sem a anotação. Mas agora tente mudar o nome do método hello() da SuperClasse para helloWorld(). O código compila, mas não há mais sobrescrita, hello() e helloWorld() se tornaram métodos completamente diferentes e sem nenhuma ligação.

Veja agora com a anotação @Override:

public class SuperClasse {
    public void helloWorld() {
        System.out.println("hello world");
    }
}

public class Classe extends SuperClasse {
    @Override
    public void hello() {
        System.out.println("hello brazil");
    }
}

Perceba que a partir de agora o seu código não compila mais, pois o compilador percebeu que embora você tenha declarado que vai sobrescrever algum método com @Override, método nenhum está sendo sobrescrito, já que não existe nenhum método com o nome hello() na SuperClasse para ser sobrescrito.

Se ficou qualquer dúvida, é só avisar. Bons estudos!

Obrigado.

Não tinha pensado nisso.