Sobrescrita (override) em Java

A sobrescrita (ou override) em Java 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:

 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. 

DOMINE O JAVA WEB ATRAVÉS DE AULAS PASSO A PASSO, DO BÁSICO AO AVANÇADO!

Domine as boas práticas com projetos práticos que vão te ajudar a desenvolver sistemas e se destacar no mercado de programação.

Clique na imagem abaixo e conheça mais detalhes do nosso curso:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags: | | |

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *