Publicado em

Herança em Java

Partilhar:

Introdução

A herança é um dos quatro pilares da programação orientada a objetos (OOP), ao lado da encapsulação, do polimorfismo e da abstração. Através da herança, é possível criar uma nova classe baseada em uma já existente, permitindo a reutilização de código e a construção de relações hierárquicas.

Fundamentos da Herança

Benefícios da Herança

  1. Reutilização de Código: Não é necessário reescrever o mesmo código repetidamente. A subclasse herda todos os membros da superclasse.
  2. Extensibilidade: Pode-se estender a superclasse existente para incorporar novos atributos e comportamentos.
  3. Hierarquia de Classe: Estabelece uma relação de hierarquia entre as classes superclasse e subclasse.

Restrições da Herança em Java

Em Java, a herança é implementada usando a palavra-chave extends. No entanto, há algumas restrições:

  1. Herança Única: Java não suporta herança múltipla através de classes. Uma classe só pode herdar de uma única classe.
  2. Construtores e Inicializadores Estáticos: Estes não são herdados por subclasses.
  3. Relação de Associação: Se uma classe herda outra, é uma relação de "é um" (is-a). Por exemplo, se Filho é uma extensão de Pai, então Filho é um Pai.

A palavra-chave protected

A palavra-chave protected em Java permite que um membro da classe seja acessado diretamente por qualquer classe dentro do mesmo pacote ou por subclasses. É uma forma de fornecer mais acesso do que private, mas ainda assim, restringindo o acesso generalizado como public.

package com.caffeinealgorithm.programaremjava;

public class Heranca {
  public void Run() {
    var pessoa = new Filho();
    pessoa.informacao();
    pessoa.comidaPreferida();

    /*
      Nome: Nelson Silva
      Idade: 28
      A minha comida preferida é arroz de marisco.
    */
  }
}

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);
  }
}

Conclusão

A herança é uma ferramenta poderosa em Java, permitindo que os programadores escrevam código mais modular e reutilizável. Ao entender os fundamentos e as nuances da herança, você estará mais bem preparado para enfrentar os desafios complexos da programação orientada a objetos em Java.

Happy coding!