void main() {
Legumes mandioca = Legumes("Macaxeira", 1200.00, "Marrom ", true);
Frutas banana = Frutas("Banana", 75.00, "Amarela", "Doce", 12);
Nozes macadamia = Nozes("Macadamia", 2.00, "Branco amarelado", "Doce", 20, 35.00);
Criticas limao = Criticas("Limao", 50.00, "Verde", "Azedo", 5, 9);
mandioca.printAlimento();
banana.printAlimento();
banana.assar();
banana.fazerMassa();
banana.separarIngredientes();
macadamia.printAlimento();
macadamia.separarIngredientes();
macadamia.assar();
limao.printAlimento();
limao.separarIngredientes();
mandioca.cozinhar();
limao.fazerSuco();
}
class Alimento {
String nome;
double peso;
String cor;
Alimento(this.nome, this.peso, this.cor);
printAlimento(){
print("Este(a) $nome pesa $peso em gramas e é $cor");
}
}
class Frutas extends Alimento implements Bolo{
String sabor;
int diasDesdeColheita;
bool? isMadura;
Frutas(String nome, double peso, String cor, this.sabor, this.diasDesdeColheita, {this.isMadura})
:super(nome, peso, cor);
estaMadura(int diasParaMadura){
isMadura = diasDesdeColheita >= diasParaMadura;
print("A sua $nome foi colhida a $diasDesdeColheita "
"dias e precisa de $diasParaMadura dias para poder colher!"
" Ela está madrua? $isMadura");
}
fazerSuco(){
print("Você fez um otimo suco de $nome");
}
@override
fazerMassa() {
print("Fazendo a massa da fruta $nome");
}
@override
assar() {
print("Assando a fruta $nome");
}
@override
separarIngredientes() {
print("Separando os ingredientes para a fruta $nome");
}
}
class Legumes extends Alimento implements Bolo{
bool isPrecisaCozinhar;
Legumes(String nome, double peso, String cor, this.isPrecisaCozinhar):super(nome, peso, cor);
cozinhar(){
if(isPrecisaCozinhar){
print("Pronto, o $nome está cozinhando!");
}else{
print("Nem precisa cozinhar!");
}
}
@override
assar() {
print('Assar o legume $nome');
}
@override
fazerMassa() {
print('Fazer a massa do legume $nome');
}
@override
separarIngredientes() {
print('Ingredientes separado para o legume $nome');
}
}
class Criticas extends Frutas{
double nivelAzedo;
Criticas(String nome, double peso, String cor, String sabor, int diasDesColheita, this.nivelAzedo) :
super(nome, peso, cor,sabor, diasDesColheita);
existeRefri(bool existe){
if(existe){
print("Existe refrigerante de $nome");
}else {
print("Não existe refrigerante de $nome");
}
}
}
class Nozes extends Frutas{
double porcentagemOleoNatural;
Nozes(String nome, double peso, String cor, String sabor, int diasDesColheita, this.porcentagemOleoNatural) :
super(nome, peso, cor,sabor, diasDesColheita);
@override
separarIngredientes() {
print("Separando a casca do $nome");
}
}
abstract class Bolo {
separarIngredientes();
fazerMassa();
assar();
}
Resultado:
Este(a) Macaxeira pesa 1200.0 em gramas e é Marrom Este(a) Banana pesa 75.0 em gramas e é Amarela Assando a fruta Banana Fazendo a massa da fruta Banana Separando os ingredientes para a fruta Banana Este(a) Macadamia pesa 2.0 em gramas e é Branco amarelado Separando a casca do Macadamia Assando a fruta Macadamia Este(a) Limao pesa 50.0 em gramas e é Verde Separando os ingredientes para a fruta Limao Pronto, o Macaxeira está cozinhando! Você fez um otimo suco de Limao