1
resposta

[Projeto] Faça como eu fiz: Polimorfismo e Sobrescrita

void main() {
  // Filho Erick = Filho("Erick", "branca", "castanho claro", "esbelto", 07, 73,
  //     8.6, "Não", "Masculino");
  // Erick.printPessoa();
  // Erick.isGostaDeDesenhos;
  Mae Carmen = Mae("Carmen", "branca", "castanho escuro", "magra", 21, 1.65,
      68.2, "Atevilson", "feminino", "assistir séries");
  Carmen.printMaternidade();
  Carmen.herancaGenetica();
  Carmen.manias();
  // Pai Atevilson = Pai("Atevilson", "branca", "castanho escuro", "magro", 32, 1.75, 68.9, "Carmen", "masculino");
  // Atevilson.printPai();
  // Atevilson.herancaGenetica();
  // Atevilson.manias();
}

class Pai implements Genetica {
  String nome;
  String corPele;
  String corCabelo;
  String biotipo;
  int idade;
  double altura;
  double peso;
  String conjugue;
  String sexo;
  bool? isTemFilhos;

  Pai(this.nome, this.corPele, this.corCabelo, this.biotipo, this.idade,
      this.altura, this.peso, this.conjugue, this.sexo);

  void printPai() {
    print("Oi $nome seu filho herdará algumas de suas características.");
  }

  @override
  void herancaGenetica() {
    print("Seu filho Erick, herdou sua cor $corPele.");
  }

  @override
  void manias() {
    print("Seu filho Erick, tem a mesma mania de coçar a cabeça");
  }
}

class Mae extends Pai {
  String hobbie;

  Mae(String nome, String corPele, String corCabelo, String biotipo, int idade,
      double altura, double peso, String conjugue, String sexo, this.hobbie)
      : super(nome, corPele, corCabelo, biotipo, idade, altura, peso, conjugue,
            sexo);

  void printMaternidade() {
    print(
        "Oi $nome você é mãe do Erick, e casada com $conjugue, seu hobbie é $hobbie.");
  }

  @override
  void herancaGenetica() {
    print("Seu filho Erick, herdou o formato do seu nariz.");
    // super.herancaGenetica();
  }

  @override
  void manias() {
    print("Seu filho Erick, tem a mesma mania de teimosia.");
  }
}

class Filho extends Pai {
  bool? isGostaDeDesenhos;

  Filho(String nome, String corPele, String corCabelo, String biotipo,
      int idade, double altura, double peso, String conjugue, String sexo)
      : super(nome, corPele, corCabelo, biotipo, idade, altura, peso, conjugue,
            sexo);

  void printPessoa() {
    print("Oi $nome você é um bebê ainda!");
    if (idade > 06) {
      return print("Sim, $nome gosta de desenhos.");
    } else {
      return print("Não, $nome é muito novo e não assiste TV.");
    }
  }
}

/// classe abstrata apenas com dois métodos
abstract class Genetica {
  void herancaGenetica();

  void manias();
}
1 resposta

Tudo bem ?

Bem bacana que tu entendeu e criou um excelente exemplo, espero que não tenha ficado dúvidas, mas caso tenha, manda ai que vamos te ajudar