Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Classes abstratas no Dart

void main(List<String> arguments) {

  Coelho pernaLonga = Coelho("mamifero", false);
  pernaLonga.roerAlimento();

  Lobo loboMau = Lobo("mamifero", true);
  loboMau.rasgarAlimento();

  Galinha pintadinha = Galinha("Ave", false);
  pintadinha.pincarAlimento();



  print('Hello world: ${proj_006_classes_abstratas.calculate()}!');
}
abstract class Mastigacao{

      void triturarAlimento(){}
      void rasgarAlimento(){}
      void roerAlimento(){}
      void pincarAlimento(){} // pinçar o alimento


  }

  class Animal implements Mastigacao {
    String especie;
    bool isPredador;


    Animal(this.especie, this.isPredador);


    void triturarAlimento(){
      //TODO:
    }


    void rasgarAlimento(){
      //TODO:
    }


    void roerAlimento(){
      //TODO:
    }

    void pincarAlimento(){
      //TODO:
    }

    void funcIsPredador(bool resposta){
      isPredador = resposta;
    }



  }

  class Coelho extends Animal{
   Coelho(String especie, bool isPredador) : super(especie, isPredador){
      funcIsPredador(isPredador);
   }

   @override
  void roerAlimento() {
    // TODO: implement roerAlimento
     print('Roendo alimento');
    //super.roerAlimento();
  }

  }

class Lobo extends Animal{
  Lobo(String especie, bool isPredador) : super(especie, isPredador){
    funcIsPredador(isPredador);
  }

  @override
  void rasgarAlimento() {
    // TODO: implement roerAlimento
    print('Rasgando  o  alimento');
  }

}

class Galinha extends Animal{
  Galinha(String especie, bool isPredador) : super(especie, isPredador){
    funcIsPredador(isPredador);
  }

  @override
  void pincarAlimento() {
    // TODO: implement pincarAlimento
    print('pinçando   o  alimento');
  }

1 resposta
solução!

Oi Paulo, tudo bem?

Parabéns pela implementação e compartilhamento do código! É ótimo ver que você está praticando conceitos importantes, como herança e polimorfismo, ao criar classes abstratas e subclasses que implementam comportamentos específicos.

A estrutura do código está organizada e as classes Coelho, Lobo e Galinha parecem representar bem as diferentes formas de interação com o alimento, demonstrando efetivamente o conceito de polimorfismo.

Além disso, a utilização de métodos abstratos na classe Mastigacao é uma boa prática para garantir que as subclasses implementem essas funcionalidades específicas.

Continue assim, praticando e explorando os conceitos da linguagem!

Um abraço e bons estudos.