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.");
  }