- Autor
 - Nome
- Nelson Silva
- Social
 
 
Introdução
Enquanto a primeira introdução à herança em Java ajuda-nos a compreender os seus conceitos fundamentais, neste artigo vamos aprofundar-nos em tópicos mais avançados como a sobreposição de métodos e a abstração.
Sobreposição de Métodos
Quando uma subclasse herda de uma superclasse, ela também herda os seus métodos. No entanto, em muitos casos, queremos que a subclasse tenha uma implementação diferente para um ou mais desses métodos. Isso é conseguido através da sobreposição de métodos, usando a anotação @Override.
Vantagens da Sobreposição de Métodos:
- Flexibilidade: Permite que subclasse forneça uma implementação específica de um método que já é fornecido pela sua superclasse.
- Reutilização de Código: Mesmo herdando um método de uma superclasse, podemos ajustá-lo às necessidades específicas da subclasse.
- Melhoria na Legibilidade: Ao usar a anotação @Override, sinalizamos claramente que o método está sendo sobreposto, tornando o código mais compreensível.
package com.caffeinealgorithm.programaremjava;
public class MaisSobreAHeranca {
  public void Run() {
    var pessoa = new Filho();
    pessoa.informacao();
    pessoa.comidaPreferida();
    /*
      Nome: Nelson Silva
      Idade: 28
      A minha comida preferida é lasanha.
    */
  }
}
class Pai {
  protected String ultimoNome = "Silva";
  public void comidaPreferida() {
    System.out.println("A minha comida preferida é arroz de marisco.");
  }
}
class Filho extends Pai {
  private String primeiroNome = "Nelson";
  private int idade = 28;
  public void informacao() {
    System.out.printf("Nome: %s %s\n", primeiroNome, ultimoNome);
    System.out.printf("Idade: %d\n", idade);
  }
  @Override
  public void comidaPreferida() {
    System.out.println("A minha comida preferida é lasanha.");
  }
}
Abstração e Métodos Abstratos
Mencionou-se brevemente sobre o termo "abstract". Este é um conceito importante em Java, permitindo criar classes e métodos que não podem ser instanciados. São, essencialmente, modelos que outras classes devem seguir.
- Classes Abstratas: Não podem ser instanciadas diretamente. Servem como uma base para outras classes.
- Métodos Abstratos: São declarados na classe abstract mas não têm corpo. As subclasses devem fornecer a implementação destes métodos.
Exploraremos este tópico em detalhe num próximo artigo, garantindo um entendimento completo da abstração e como ela se integra à herança.
Conclusão
A herança, combinada com conceitos como sobreposição de métodos e abstração, faz da programação orientada a objetos uma ferramenta poderosa para criar software modular e reutilizável. Estes são apenas alguns dos conceitos avançados em Java, e continuar a explorá-los irá aprofundar ainda mais os seus conhecimentos.
