Polimorfismo
Conceito Base
Polimorfismo permite que objetos de diferentes classes sejam tratados como objetos de uma classe comum, possibilitando comportamentos diferentes através da mesma interface.
Tipos de Polimorfismo
Sobrescrita (Override)
public class CyberProgram {
public void execute() {
System.out.println("Running base program");
}
}
public class Virus extends CyberProgram {
@Override
public void execute() {
System.out.println("Infiltrating system");
}
}
Sobrecarga (Overload)
public class DataMiner {
public void mine(String data) {
// Processa string
}
public void mine(byte[] data) {
// Processa bytes
}
public void mine(String data, int depth) {
// Processa com profundidade
}
}
Polimorfismo em Ação
public class SystemInterface {
public void executeProgram(CyberProgram program) {
program.execute(); // Polimorfismo em tempo de execução
}
public static void main(String[] args) {
SystemInterface system = new SystemInterface();
CyberProgram virus = new Virus();
CyberProgram firewall = new Firewall();
system.executeProgram(virus); // Executa como Virus
system.executeProgram(firewall); // Executa como Firewall
}
}
Benefícios
Flexibilidade
Código genérico
Extensibilidade
Manutenibilidade
Reutilização
Interfaces comuns
Comportamento variável
Código limpo
Abstração
Simplificação
Encapsulamento
Modularidade
Padrões Comuns
Factory Method
public interface CyberTool {
void activate();
}
public class ToolFactory {
public CyberTool createTool(String type) {
return switch (type) {
case "hack" -> new HackTool();
case "scan" -> new ScanTool();
default -> throw new IllegalArgumentException();
};
}
}
Strategy Pattern
public interface AttackStrategy {
void execute();
}
public class CyberAttack {
private AttackStrategy strategy;
public void setStrategy(AttackStrategy strategy) {
this.strategy = strategy;
}
public void execute() {
strategy.execute();
}
}
Exercícios Práticos
// Implemente diferentes tipos de programas:
public interface Program {
void run();
void stop();
String getStatus();
}
// Crie implementações para:
// 1. DataAnalyzer
// 2. NetworkScanner
// 3. SecurityMonitor
Próximos Passos
26 June 2025