- Autor
- Nome
- Nelson Silva
- Social
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
- Reutilização de Código: Não é necessário reescrever o mesmo código repetidamente. A subclasse herda todos os membros da superclasse.
- Extensibilidade: Pode-se estender a superclasse existente para incorporar novos atributos e comportamentos.
- 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:
- Herança Única: Java não suporta herança múltipla através de classes. Uma classe só pode herdar de uma única classe.
- Construtores e Inicializadores Estáticos: Estes não são herdados por subclasses.
- Relação de Associação: Se uma classe herda outra, é uma relação de "é um" (is-a). Por exemplo, se
Filho
é uma extensão dePai
, entãoFilho
é umPai
.
protected
A palavra-chave 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.