Aula 04 - Herança e Polimorfismo 🧬
Hoje exploraremos dois pilares poderosos da POO que permitem o reuso de código e a flexibilidade do sistema.
😊 Herança
A herança permite que uma classe (Filha ou Subclasse) herde atributos e métodos de outra classe (Pai ou Superclasse).
Vantagem: Evita repetição de código (DRY - Don't Repeat Yourself).
Exemplo de Hierarquia:
- Pessoa (Pai)
- Cliente (Filho)
- Funcionário (Filho)
📊 Diagrama de Herança
classDiagram
Pessoa <-- Cliente
Pessoa <-- Funcionario
class Pessoa {
+String nome
+String cpf
}
class Cliente {
+double limiteCredito
}
class Funcionario {
+double salario
}
🧠 Polimorfismo
Polimorfismo significa "muitas formas". É a capacidade de um objeto ser tratado como sua superclasse, mas se comportar de acordo com sua classe real.
[!IMPORTANT] A Sobre-escrita (@Override) é essencial para o polimorfismo, permitindo que o filho personalize um comportamento herdado do pai.
📝 Exercícios Progressivos
- Básico: Na frase "Todo Carro é um Veículo", quem é a Superclasse?
- Básico: O que significa a anotação
@Override? - Intermediário: Explique a diferença entre Herança e Composição (brevíssimo).
- Intermediário: Crie uma hierarquia entre
Animal,CachorroeGato. Qual método seria sobre-escrito? - Desafio: No sistema de um banco, por que é útil tratar
ContaCorrenteeContaPoupancaapenas comoContaem um loop de processamento?
🚀 Mini-projeto: Crie uma classe Pessoa e duas subclasses. Implemente um método apresentar() na classe pai e mude o comportamento nas classes filhas usando @Override.