NetRunner: Java Mastery Guide 1.0 Help

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.

executa como

executa como

executa como

CyberProgram

Virus

Firewall

DataMiner

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

  1. Flexibilidade

    • Código genérico

    • Extensibilidade

    • Manutenibilidade

  2. Reutilização

    • Interfaces comuns

    • Comportamento variável

    • Código limpo

  3. 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

Interfaces e Classes Abstratas

26 June 2025