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();
}
}