CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

Java - Sobrescrita (override)

Por Benedito Silva Júnior - publicado em 15/07/2016


A sobrescrita (ou override) está diretamente relacionada à orientação a objetos, mais especificamente com a herança. Com a sobrescrita, conseguimos especializar os métodos herdados das superclasses, alterando o seu comportamento nas subclasses por um mais específico.

A sobrescrita de métodos consiste basicamente em criar um novo método na classe filha contendo a mesma assinatura e mesmo tipo de retorno do método sobrescrito.

O método deve possuir o mesmo nome, a mesma quantidade e o mesmo tipo de parâmetros utilizado no método sobrescrito.

Com relação ao tipo de retorno, este pode ser um subtipo do tipo de retorno do método sobrescrito, por exemplo: se o método da superclasse retornar um List, é permitido que o novo método retorne um ArrayList ou qualquer outro List. No entanto o oposto não é permitido, gerando um erro de compilação.

Veja:

public class Animal { //super classe (classe pai) void comer() { System.out.println("Animal comendo..."); } //subclasse (classe filha) - classe Cachorro herda Animal class Cachorro extends Animal { void rolar() { System.out.println("Cachorro rolando..."); } void comer(){ //a classe Cachorro sobrescreveu o método comer System.out.println("Cachorro comendo..."); } }

Cachorro herdou o método comer de animal mas por algum motivo teve que escrever seu próprio método comer. Então se num determinado momento quisermos chamar:

new Dog().comer();

Teremos o resultado Cachorro comendo... Sem problemas.

Vamos analisar alguns casos agora. Se você herdou métodos abstratos de uma classe abstrata, então é obrigatório sobrescrevê-los (na prática você estaria implementando porque não tem nada pra sobrescrever).

Mas se sua classe também for abstrata não precisa, você pode simplente "passar a vez" para a última classe concreta da árvore. Só não esqueça que em algum momento você será obrigado a sobrescrever os métodos abstract. 

 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo