Herança em Java Explicada: Tipos, Sintaxe e Exemplos Práticos
O que é Herança?
Herança é um conceito central de orientação a objetos que permite uma classe adquirir campos e métodos de outra. Pense como um filho herdando traços dos pais. Reutilizando código existente, a herança promove reusabilidade e simplifica manutenção.
Este guia abrange:
- Tipos de herança em Java
- Como a herança funciona em Java
- Exemplos Java passo a passo
- Uso da palavra-chave
super - Cenários reais de OOP
Tipos de Herança
Java suporta vários padrões de herança, cada um adequado a diferentes necessidades de design.
Herança Simples
Uma classe estende outra, formando relação pai-filho simples.
Herança Múltipla
Embora Java não permita uma classe estender múltiplas classes, entender o conceito ajuda ao usar interfaces.
Herança Multinível
Cadeias de herança podem abranger vários níveis: uma subclasse pode ser superclasse para outra classe.
Herança Hierárquica
Uma superclasse pode gerar múltiplas subclasses.
Herança Híbrida
Herança híbrida combina padrões de herança simples e múltipla. Embora Java não suporte diretamente, o conceito é útil ao projetar hierarquias complexas usando interfaces.
Nota: Java não suporta herança híbrida ou múltipla para classes.
Herança em Java
Em Java, uma relação É-UM é expressa através de herança. A palavra-chave extends sinaliza que uma subclasse herda de uma superclasse.
Sintaxe típica:
class SubClasse extends SuperClasse {
// métodos e campos
}
Exemplo de Herança em Java
Abaixo, ilustração concisa de herança em ação.
class Medico {
void detalhesMedico() {
System.out.println("Detalhes do Médico...");
}
}
class Cirurgiao extends Medico {
void detalhesCirurgiao() {
System.out.println("Detalhes do Cirurgião...");
}
}
public class Hospital {
public static void main(String[] args) {
Cirurgiao s = new Cirurgiao();
s.detalhesMedico();
s.detalhesCirurgiao();
}
}
Usando a Palavra-chave super
A palavra-chave super fornece acesso a membros da superclasse, análoga a this mas para elementos da classe pai.
Pode ser usada com variáveis, métodos e construtores.
Exemplo de sintaxe:
super.nomeMetodo();
Herança em Ação: Cenário Bancário
Considere uma aplicação bancária suportando múltiplos tipos de conta. Em abordagem estruturada, você escreveria funções separadas para ações comuns como depositar e sacar.
Usando OOP, define-se uma classe base Conta com comportamento compartilhado, e estende-se para tipos específicos.
Adicionando Cheque Especial
Quando o requisito muda para adicionar cheque especial, código estruturado precisa ser alterado. Em contraste, OOP permite criar nova subclasse implementando lógica única de sacar sem tocar código base testado.
Adicionando Conta Cartão de Crédito
Similarmente, introduzir conta cartão de crédito com regras únicas de depósito é simples em OOP: estenda classe base com comportamento especializado.
Benefícios da Herança em OOP
Herança elimina duplicação de código colocando lógica compartilhada na classe pai. Classes filhas herdam métodos depositar e sacar, reduzindo overhead de manutenção.
Java
- Dominando Herança em Java: Conceitos, Tipos e Exemplos Práticos
- Entendendo Interfaces em C#: Definição, Exemplo e Uso Prático
- Conceitos de OOP em Java: Fundamentos, Exemplos e Vantagens
- Encapsulamento em Java: Guia Completo com Exemplo Prático
- Método Java String length(): Como Obter o Tamanho de uma String (Exemplo)
- Entendendo Java String.charAt(): Sintaxe, Tipo de Retorno, Exceções e Exemplo Prático
- Método Java String.contains(): Como Verificar Substrings – Exemplos Práticos
- Dominando Java String.endsWith(): Como Verificar Sufixos de String com Exemplos
- Lendo Arquivos em Java com BufferedReader – Guia Prático com Exemplos
- Algoritmo Insertion Sort em Java: Exemplo Claro e Guia Passo a Passo