abstract class Funcionario {
    private String nome;
    private String cpf;
    private double salarioBase;

    public Funcionario(String nome, String cpf, double salarioBase) {
        this.nome = nome;
        this.cpf = cpf;
        this.salarioBase = salarioBase;
    }

    public String getNome() {
        return nome;
    }

    public String getCpf() {
        return cpf;
    }

    public double getSalarioBase() {
        return salarioBase;
    }

    public abstract double calcularSalario();

    public void exibirDados() {
        System.out.println("Nome: " + nome);
        System.out.println("CPF: " + cpf);
        System.out.println("Salário final: R$ " + String.format("%.2f", calcularSalario()));
    }
}

class Desenvolvedor extends Funcionario {
    private String linguagemPrincipal;

    public Desenvolvedor(String nome, String cpf, double salarioBase, String linguagemPrincipal) {
        super(nome, cpf, salarioBase);
        this.linguagemPrincipal = linguagemPrincipal;
    }

    public String getLinguagemPrincipal() {
        return linguagemPrincipal;
    }

    @Override
    public double calcularSalario() {
        return getSalarioBase() + 1000.00;
    }

    @Override
    public void exibirDados() {
        super.exibirDados();
        System.out.println("Linguagem principal: " + linguagemPrincipal);
    }
}

class Gerente extends Funcionario {
    private double gratificacaoDeCargo;

    public Gerente(String nome, String cpf, double salarioBase, double gratificacaoDeCargo) {
        super(nome, cpf, salarioBase);
        this.gratificacaoDeCargo = gratificacaoDeCargo;
    }

    public double getGratificacaoDeCargo() {
        return gratificacaoDeCargo;
    }

    @Override
    public double calcularSalario() {
        return getSalarioBase() + gratificacaoDeCargo;
    }

    @Override
    public void exibirDados() {
        super.exibirDados();
        System.out.println("Gratificação de cargo: R$ " + String.format("%.2f", gratificacaoDeCargo));
    }
}

public class Main {
    public static void main(String[] args) {
        Funcionario dev = new Desenvolvedor("Natali Lima", "123.456.789-00", 5000.00, "Java");
        Funcionario gerente = new Gerente("Carlos Silva", "987.654.321-00", 8000.00, 2500.00);

        System.out.println("=== Desenvolvedor ===");
        dev.exibirDados();
        System.out.println();

        System.out.println("=== Gerente ===");
        gerente.exibirDados();
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: