1
resposta

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

abstract class Animal {
  void emitirSom();

  void andar();

  void comer();
}

class Cachorro implements Animal {
  String sexo;
  int idade;
  String nome;

  Cachorro(this.sexo, this.idade, this.nome);

  @override
  emitirSom() {
    // TODO: implement emitirSom
    print('$nome está latindo!');
  }

  @override
  andar() {
    // TODO: implement andar
    print('$nome está andando!');
  }

  @override
  comer() {
    // TODO: implement comer
    print('$nome está comendo a ração!!');
  }

  saberIdade() {
    print('$nome tem $idade ano(s) de idade!');
  }
}
1 resposta

Olá Davi, tudo bem?

Não sei se teve alguma duvida, mas vou tentar te ajudar esclarecendo alguns pontos, tá ?

O polimorfismo é uma técnica que permite que objetos de diferentes classes sejam tratados de forma semelhante, desde que implementem a mesma interface ou herdem da mesma classe abstrata. No código que você postou, a classe Cachorro implementa a interface Animal, o que significa que ela pode ser tratada como um Animal em qualquer lugar do código.

Já a sobrescrita é uma técnica que permite que uma classe filha substitua a implementação de um método da classe pai. No caso do seu código, a classe Cachorro sobrescreve os métodos emitirSom(), andar() e comer() da classe Animal.

O método saberIdade() da classe Cachorro não está presente na classe Animal, o que significa que ele não pode ser chamado em um objeto Animal. No entanto, ele pode ser chamado em um objeto Cachorro.

Se tiver mais alguma dúvida, é só perguntar!

Espero ter ajudado e bons estudos!