Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🧬 CAPÍTULO 13: HERANÇA E POLIMORFISMO

A Herança é o mecanismo onde uma classe "filha" herda automaticamente as características da classe "pai", permitindo a criação de sistemas modulares e a eliminação de redundância (DRY - Don't Repeat Yourself). 🛡️🧩


🎯 Objetivo do Capítulo

Dominar a hierarquia de classes, diferenciando Generalização de Especialização, e compreender como o Polimorfismo permite que objetos diferentes respondam à mesma chamada de formas distintas.


🏢 O Cenário Corporativo (TecProExpress)

Na TecProExpress, o sistema de funcionários está crescendo. Temos o Motorista, o Mecânico e o Gerente. Todos eles têm nome, CPF e data de admissão. Se você criar essas variáveis em todas as classes, terá 3 vezes o mesmo trabalho.

"Seu desafio como Arquiteto Sênior é criar a Superclasse Funcionario. Nela, você colocará tudo o que é comum. As outras classes apenas 'estenderão' esse comportamento, focando apenas no que as torna únicas."


🧠 Hierarquia de Poderes no Java

Termo UMLPapel na Arquitetura
Superclasse (Pai)Onde moram os dados genéricos (Ex: Usuario). Contém o que é comum a todos.
Subclasse (Filha)Onde moram as especialidades (Ex: Admin, Cliente). Herda o Pai e adiciona permissões.

📊 Modelagem de Acesso

classDiagram
    class Usuario {
        +String email
        +String senha
        +fazerLogin()
    }
    class Admin {
        +Integer nivelAcesso
        +deletarUsuario()
    }
    class Cliente {
        +String cartaoCredito
        +comprarProduto()
    }
    Usuario <|-- Admin : extends
    Usuario <|-- Cliente : extends

🔍 Generalização vs. Especialização

  • Generalizar (Subir): Olhamos para as filhas e subimos para a classe Pai para remover repetições.
  • Especializar (Descer): Olhamos para a classe Pai e descemos para as filhas para adicionar comportamentos específicos (ex: o Motorista tem CNH, mas o Atendente não).

[!TIP] Dica de Reuso: O Polimorfismo permite que você trate todos os objetos como se fossem o "Pai". Na TecProExpress, você pode ter uma lista de Funcionarios e rodar um comando pagarSalario() para todos, independente se eles são motoristas ou gerentes. O sistema saberá qual regra aplicar a cada um. 🚀


💡 Checkpoint de Lógica

[!IMPORTANT] Reflexão Profissional: Se você tem uma classe Animal e uma classe Cachorro que herda dela, e percebe que precisa criar uma classe Gato, você deve criar todos os atributos do zero ou herdar de Animal? (Resposta: Herdar de Animal. A herança economiza linhas de código e garante que, se o nome de um animal mudar, mudará para todos). 🧠🛡️