🧩 Exercícios: Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting
Spec Sistemas Com Java • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 09.1 — Herança com extends, super() e Sobrescrita com @Override
Contexto: Herança com extends, super() e Sobrescrita com @Override no contexto de Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting.
Requisitos de Execução:
- Criar classe
ContaEspecialherdando deContae sobrescrevendo método de saque com limite.
Resultado Esperado
Herança aplicada com invocação de construtor base via super().
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_09_1_SeuNome - Envie na tarefa:
Atividade Cap 09 - Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public class ContaCorrente {
protected double saldo;
public ContaCorrente(double saldo) { this.saldo = saldo; }
public void sacar(double v) { saldo -= (v + 5.0); }
public double getSaldo() { return saldo; }
}
🔍 Nível 2: Prática
Problema 09.2 — Polimorfismo e Classes Abstratas com abstract
Contexto: Polimorfismo e Classes Abstratas com abstract no contexto de Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting.
Requisitos de Execução:
- Criar classe abstrata
Figurae calcular área polimorficamente em lista de figuras.
Resultado Esperado
Método polimórfico invocado através de referência de classe abstrata.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_09_2_SeuNome - Envie na tarefa:
Atividade Cap 09 - Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public abstract class Figura {
public abstract double area();
}
class Retangulo extends Figura {
private double l, a;
public Retangulo(double l, double a) { this.l = l; this.a = a; }
public double area() { return l * a; }
}
⚡ Nível 3: Integração
Problema 09.3 — Pattern Matching para instanceof no Java 21 (JEP 394)
Contexto: Pattern Matching para instanceof no Java 21 (JEP 394) no contexto de Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting.
Requisitos de Execução:
- Verificar e extrair tipo derivado em única instrução com
if (obj instanceof Retangulo r).
Resultado Esperado
Pattern matching para instanceof simplificando casting com segurança.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_09_3_SeuNome - Envie na tarefa:
Atividade Cap 09 - Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public class InstanceOfDemo {
public static void imprimirArea(Figura f) {
if (f instanceof Retangulo r) {
System.out.println("Area do Retangulo: " + r.area());
}
}
}
🏆 Nível 4: Desafio Corporativo
Problema 09.4 — Classes Seladas (Sealed Classes com permits) no Java 21
Contexto: Classes Seladas (Sealed Classes com permits) no Java 21 no contexto de Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting.
Requisitos de Execução:
- Restringir hierarquia de herança com
public abstract sealed class Pagamento permits Pix, Cartao.
Resultado Esperado
Hierarquia selada garantindo controle exaustivo de subclasses em tempo de compilação.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_09_4_SeuNome - Envie na tarefa:
Atividade Cap 09 - Herança, Polimorfismo, Classes Abstratas e Upcasting/Downcasting
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public abstract sealed class MetodoPagamento permits Pix, Boleto {}
final class Pix extends MetodoPagamento {}
final class Boleto extends MetodoPagamento {}
// Validacao adicional
class ValidadorStatus { public static boolean ok() { return true; } }
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |