1
resposta

[Projeto] Utilizando Herança

Funcionario

public class Funcionario {
    private String nome;
    private String cpf;
    private float salario;

    Funcionario(String nome, String cpf, float salario) {
        this.setNome(nome);
        this.setCpf(cpf);
        this.setSalario(salario);
        System.out.println("Funcionário Cadastrado com Sucesso!");
        System.out.println("Nome: " + this.nome + "\nCpf: " + this.cpf);
        System.out.println("Salario: " + this.salario);
    }

    Funcionario(String nome, String cpf) {
        this(nome, cpf, 1200f);
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public float getSalario() {
        return salario;
    }

    public void setSalario(float salario) {
        this.salario = salario;
    }

    public float getBonificacao() {
        return this.salario * 0.1f;
    }
}

Gerente

public class Gerente extends Funcionario{
    private String senha;

    Gerente(String nome, String cpf, float salario, String senha) {
        super(nome, cpf, salario);
        this.senha = senha;
    }

    Gerente(String nome, String cpf, float salario) {
        this(nome, cpf, salario, "admin");
        System.out.println("A senha padrão é admin, altere assim que possível");
    }

    public String getSenha() {
        return this.senha;
    }

    public void setSenha(String senhaAnterior, String senha) {
        if(this.autentica(senhaAnterior))
            this.senha = senha;
        else
            System.out.println("Digite a senha corretamente");
    }

    public boolean autentica(String senha) {
        return this.senha.equals(senha);
    }
}

Teste

public class Main {

    public static void main(String[] args) {
        Funcionario nico = new Funcionario("Nico", "12345678910");

        System.out.println("Bonificacao " + (nico.getSalario()+nico.getBonificacao()) +"\n");

        Gerente g1 = new Gerente("Rod", "10987654321", 5000f);
        System.out.println(g1.autentica("admin"));

        Gerente g2 = new Gerente("Afon", "12378945610", 10000f, "senha123");
        System.out.println(g2.autentica("admin"));
    }
}
1 resposta

Fala Rodrigo, de boa ?

Cara sua solução está bem massa, se tiver alguma dúvida pode mandar aqui nessa thread ::D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software