Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

[Bug] Polimorfismo e Sobrescrita

Estou tentando usar uma classe 'Abstract', porem quando tento pegar a a classe abstrata e coloco em uma outra class, aparece um erro de não identificação que não consigo acessar.


import 'dart:ffi';

main() {

    Fruta laranja = Fruta('laranja', 'abreu', 13.9, 100, 'laranja');
}

class Fruta implements Bolo {
  String nome;
  String ondeComprou;
  double peso;
  int quantasComprou;
  String cor;

  Fruta(this.nome, this.ondeComprou, this.peso, this.quantasComprou, this.cor);

        @override
  Void descascar{
    print('teste');
  }
     @override
  void suco{
    print('teste');
  }
}

class Citricas extends Fruta implements Bolo {
  bool eMuitoAcida;

  Citricas(String nome, String ondeComprou, double peso, int quantasComprou,
      String cor, this.eMuitoAcida)
      : super(nome, ondeComprou, peso, quantasComprou, cor);

      @override
  Void descascar{
    print('teste');
  }
     @override
  void suco{
    print('teste');
  }
}

class Legumes extends Fruta {
  bool cascaDura;

  Legumes(String nome, String ondeComprou, double peso, int quantasComprou,
      String cor, this.cascaDura)
      : super(nome, ondeComprou, peso, quantasComprou, cor);

}

abstract class Bolo {
  descascar();
  suco();

}
2 respostas

Bom, pelo que vi tem o void que está em com "V" e não "v".

  Void descascar{
    print('teste');
  }

Outra coisa, acredito que seja necessário você informar que os métodos da classe abstrata são do tipo "void" pois não estão retornando nada.

Acabei de efetuar algumas pesquisas após as suas dicas e acabei de ver que o problema era OS PARENTESES na hora de chamar os metodos das class abstrata eu estava esquecendo de colocar os parenteses.

o jeito correto seria assim

* void printAlimento() {
    print("Este/a $nome pesa $peso gramas e é $cor.");
  }

* o Jeito que eu coloquei antes

void printAlimento {
    print("Este/a $nome pesa $peso gramas e é $cor.");
  }