OneCompiler

Java Code

121
 abstract class Pessoa { 

    protected String nome; 

    protected int anoNas; 

    protected int idade; 

    protected double altura; 

    protected double peso; 

    protected double salario; 

  

    public Pessoa(String nome, int anoNas, double altura, double peso) { 

        this.nome = nome; 

        this.anoNas = anoNas; 

        this.altura = altura; 

        this.peso = peso; 

        this.idade = calcularIdade(2024); // ano atual 

    } 

  

    public int calcularIdade(int anoAtual) { 

        return anoAtual - this.anoNas; 

    } 

  

    public void mostrarDados() { 

        System.out.println("Nome: " + this.nome); 

        System.out.println("Ano de Nascimento: " + this.anoNas); 

        System.out.println("Idade: " + this.idade); 

        System.out.println("Altura: " + this.altura); 

        System.out.println("Peso: " + this.peso); 

        System.out.println("Salario: " + this.salario); 

    } 

} 

  

class Tecnico extends Pessoa { 

    private String apelido; 

    private int anosExperiencia; 

    private int tempoContrato; 

  

    public Tecnico(String nome, int anoNas, double altura, double peso, String apelido, int anosExperiencia, int tempoContrato) { 

        super(nome, anoNas, altura, peso); 

        this.apelido = apelido; 

        this.anosExperiencia = anosExperiencia; 

        this.tempoContrato = tempoContrato; 

    } 

  

    public void calcularSalario(double salarioBase, int horasExtras) { 

        this.salario = salarioBase + 350.00 * horasExtras; 

    } 

  

    @Override 

    public void mostrarDados() { 

        super.mostrarDados(); 

        System.out.println("Apelido: " + this.apelido); 

        System.out.println("Anos de Experiencia: " + this.anosExperiencia); 

        System.out.println("Tempo de Contrato: " + this.tempoContrato); 

    } 

} 

  

class Jogador extends Pessoa { 

    private String nomeCamisa; 

    private String posicaoJoga; 

    private int numGolCarreira; 

  

    public Jogador(String nome, int anoNas, double altura, double peso, String nomeCamisa, String posicaoJoga, int numGolCarreira) { 

        super(nome, anoNas, altura, peso); 

        this.nomeCamisa = nomeCamisa; 

        this.posicaoJoga = posicaoJoga; 

        this.numGolCarreira = numGolCarreira; 

    } 

  

    public void calcularSalario(double salarioBase, double bonus) { 

        this.salario = salarioBase + 5 * bonus; 

    } 

  

    @Override 

    public void mostrarDados() { 

        super.mostrarDados(); 

        System.out.println("Nome da Camisa: " + this.nomeCamisa); 

        System.out.println("Posicao que Joga: " + this.posicaoJoga); 

        System.out.println("Numero de Gols na Carreira: " + this.numGolCarreira); 

    } 

} 

  

public class Main { 

    public static void main(String[] args) { 

        Tecnico tecnico1 = new Tecnico("Tecnico 1", 1970, 1.75, 70, "Tec1", 20, 2) 

        tecnico1.calcularSalario(5000, 10); 

        tecnico1.mostrarDados(); 

  

        Tecnico tecnico2 = new Tecnico("Tecnico 2", 1965, 1.80, 75, "Tec2", 25, 3) 

        tecnico2.calcularSalario(6000, 8); 

        tecnico2.mostrarDados(); 

  

        Jogador jogador1 = new Jogador("Jogador 1", 1990, 1.85, 80, "Jog1", "Atacante", 100); 

        jogador1.calcularSalario(7000, 20); 

        jogador1.mostrarDados(); 

  

        Jogador jogador2 = new Jogador("Jogador 2", 1995, 1.90, 85, "Jog2", "Defensor", 50); 

        jogador2.calcularSalario(8000, 15); 

        jogador2.mostrarDados(); 

    } 

}