1
resposta

[Projeto] Classes e Heranças

void main() {
  // --- ATLETA AUGUSTO ---
  Atleta augusto = Atleta(
    nome: 'Augusto',
    esporte: 'Futebol Americano',
    idade: 30,
    isPcd: false,
    peso: 104,
  );

  augusto.cadastrarAtleta();

  Competicao competicao = Competicao(
    true,
    augusto.idade,
    augusto.esporte,
    nome: augusto.nome,
  );

  competicao.podeParticiparDaCompeticao(
    augusto.idade!,
    augusto.esporte!,
  );

  Categoria categoria = Categoria(
    nome: augusto.nome,
    peso: augusto.peso,
    idade: augusto.idade,
    esporte: augusto.esporte,
  );

  print(categoria.classificarCategoria());
}

class Atleta {
  String? nome;
  double? peso;
  int? idade;
  String? esporte;
  bool? isPcd;

  Atleta({this.nome, this.peso, this.idade, this.esporte, this.isPcd});

  void cadastrarAtleta() {
    print(
      'O atleta de nome: $nome | idade: $idade | peso: $peso | esporte: $esporte está cadastrado com sucesso.',
    );
  }
}

class Competicao extends Atleta {
  bool? aceitaMaiorDeIdade;

  Competicao(
    this.aceitaMaiorDeIdade,
    int? idade,
    String? esporte, {
    super.nome,
  }) : super(idade: idade, esporte: esporte);

  bool podeParticiparDaCompeticao(int idade, String esporte) {
    if (idade >= 18 && (esporte == 'Futsal' || esporte == 'Boxe')) {
      print('O atleta $nome está permitido a participar da competição.');
      return true;
    }

    print(
      'O atleta $nome NÃO está permitido a participar da competição (idade: $idade, esporte: $esporte).',
    );
    return false;
  }
}

class Categoria extends Atleta {
  Categoria({super.nome, super.peso, super.idade, super.esporte, super.isPcd});

  String classificarCategoria() {
    if (esporte != 'Boxe') {
      return 'O atleta $nome não pratica Boxe, portanto não possui categoria de peso definida.';
    }

    if (peso == null) {
      return 'Peso não informado para o atleta $nome.';
    }

    if (peso! < 60) {
      return 'O atleta $nome está na categoria Peso Leve.';
    } else if (peso! >= 60 && peso! < 80) {
      return 'O atleta $nome está na categoria Peso Médio.';
    } else {
      return 'O atleta $nome está na categoria Peso Pesado.';
    }
  }
}
1 resposta

Olá, Augusto! Tudo bem?

Parabéns pelo desenvolvimento do projeto!

Você aplicou corretamente a sintaxe da Herança no Dart.

Continue firme nos estudos de Dart e Flutter!

Sucesso

Imagem da comunidade