void main() {
Fruta laranja1 = Fruta('Laranja', 200, 'Laranja', 'Cítrica', true);
Fruta banana1 = Fruta('Banana', 150, 'Amarela', 'Doce', false);
Hortalicas alface1 = Hortalicas('Alface', 50, 'Verde', false, 'Amargo');
Legumes beterraba1 = Legumes('Beterraba', 150, 'Roxa', true);
Nozes noz1 = Nozes('Noz', 30, 'Marrom', 'Doce', false, 40);
laranja1.printAlimento();
laranja1.fazerSuco();
banana1.printAlimento();
banana1.fazerMassa();
banana1.assar();
alface1.printAlimento();
alface1.precisaCozinhar();
alface1.fazerSalada();
beterraba1.printAlimento();
beterraba1.precisaCozinhar();
noz1.printAlimento();
noz1.fazerMassa();
}
//classe Mãe
class Alimento {
String nome;
double peso;
String cor;
Alimento(this.nome, this.peso, this.cor);
void printAlimento() {
print('A $nome pesa $peso gramas e tem cor $cor.');
}
}
class Fruta extends Alimento implements Bolo {
String sabor;
bool isFazerSuco;
Fruta(String nome, double peso, String cor, this.sabor, this.isFazerSuco)
: super(nome, peso, cor);
void fazerSuco() {
if (isFazerSuco) {
print('Com a fruta $nome é possível fazer um suco.');
} else {
print('Não é possível fazer um suco');
}
}
@override
void separarIngredientes() {
print('Separar o/a $nome com cor $cor e colocar sobre a bancada.');
}
@override
void fazerMassa() {
print('Misturar o/a $nome com os demais os ingredientes.');
}
@override
void assar() {
print(
'Levar ao forno o bolo de $nome para assar conforme a especificação.');
}
}
class Legumes extends Alimento {
bool isPrecisaCozinhar;
Legumes(String nome, double peso, String cor, this.isPrecisaCozinhar)
: super(nome, peso, cor);
void precisaCozinhar() {
if (isPrecisaCozinhar) {
print('É necessário que o/a $nome seja cozido para comer.');
} else {
print('Não é preciso cozinhar o/a $nome.');
}
}
}
class Nozes extends Fruta {
double porcentagemDeOleo;
Nozes(String nome, double peso, String cor, String sabor, bool isFazerSuco,
this.porcentagemDeOleo)
: super(nome, peso, cor, sabor, isFazerSuco);
void tenhoEmCasa() {
print('Tem no armário');
}
@override
void fazerMassa() {
print('Tirar a casca');
super.fazerMassa();
}
}
class Hortalicas extends Legumes {
String sabor;
Hortalicas(
String nome, double peso, String cor, bool isPrecisaCozinhar, this.sabor)
: super(nome, peso, cor, isPrecisaCozinhar);
void fazerSalada() {
print(
'É possível fazer uma salada com a $nome que pesa $peso gramas e possui cor $cor.');
}
}
//classe abstrata
abstract class Bolo {
void separarIngredientes();
void fazerMassa();
void assar();
}