Para submeter novas perguntas e respostas, acesse https://guj.com.br

Versão atual:

Conceito básico de Herança

Bom dia pessoal, estou fazendo fazendo um exercicio que aplica o conceito básico de herança, mas não consigo imprimir os dados de um metódo pré definido na classe mãe editado nas classes derivadas. Sei que primeiro é chamado o metodo das classes derivadas, mas estou sem ideias de como resolver isto. Agradeceria uma ajuda. Abaixo o código:

package testafuncionarios;

public class Funcionario {

    private String name;
    private double salary;

    public double calculaBonificacao(){
        return this.salary*0.1;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public void mostraDados(){
        System.out.println("Nome: " + getName());
        System.out.println("Salário: " + getSalary());
        System.out.println("Bonificação: " + calculaBonificacao());

    }   
}

package testafuncionarios;

public class Gerente extends Funcionario{

    private String usuario;
    private String senha;

    public double calculaBonificacao(){
        return this.getSalary()*0.6 + 100;

    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getSenha() {
        return senha;
    }

    public String getUsuario() {
        return usuario;
    }

      public void mostraDados(){
        System.out.println("GERENTE");
        System.out.println("Usuário: " + getUsuario());
        System.out.println("Senha: " + getSenha());
        System.out.println("Bonificação: " + calculaBonificacao());

    }

}

package testafuncionarios;

public class Secretaria extends Funcionario{

    private int ramal;

    public int getRamal() {
        return ramal;
    }

    public void setRamal(int ramal) {
        this.ramal = ramal;}

        public void mostraDados(){
        System.out.println("SECRETARIA");
        System.out.println("Ramal:" + getRamal());

    }
    }
package testafuncionarios;

public class Telefonista extends Funcionario {

    private int estacaoDeTrabalho;

    public void setEstacaoDeTrabalho(int estacaoDeTrabalho) {
        this.estacaoDeTrabalho = estacaoDeTrabalho;
    }

    public int getEstacaoDeTrabalho() {
        return estacaoDeTrabalho;
    }
        public void mostraDados(){
        System.out.println("TELEFONISTA");
        System.out.println("Estação de trabalho: " + getEstacaoDeTrabalho());

    }

}

package testafuncionarios;

public class TestaFuncionarios {


    public static void main(String[] args) {

        Gerente g = new Gerente();
        g.setName("Ruth Mateus");
        g.setSalary(2000);
        g.setUsuario("ruth mateus");
        g.setSenha("augusto122793");

        Telefonista t = new Telefonista();
        t.setName("Carolina Mello");
        t.setSalary(1000);
        t.setEstacaoDeTrabalho(13);

        Secretaria s = new Secretaria();
        s.setName("Tatiana Mateus");
        s.setSalary(1500);
        s.setRamal(198);

        g.mostraDados();
        t.mostraDados();
        s.mostraDados();

    }

}

Não consigo imprimir para cada objeto criado os dados predefinidos para todos os funcionários, que são nome e salário, nem imprimir a bonifcação.

Versões(2):

Ver a versão formatada

Conceito básico de Herança

Comentário

new question