// class base funcionario
class Funcionario {
String nome;
double salario;
Funcionario(this.nome, this.salario);
void exibirInfo() {
print('Nome: $nome | Salário: R\$${salario.toStringAsFixed(2)}');
}
void trabalhar() {
print('$nome está trabalhando.');
}
}
// Cozinheiro
class Cozinheiro extends Funcionario {
Cozinheiro(String nome, double salario) : super(nome, salario);
@override
void trabalhar() {
print('$nome está preparando os pratos na cozinha.');
}
}
// Garçom
class Garcom extends Funcionario {
Garcom(String nome, double salario) : super(nome, salario);
@override
void trabalhar() {
print('$nome está atendendo os clientes nas mesas.');
}
}
// Gerente
class Gerente extends Funcionario {
Gerente(String nome, double salario) : super(nome, salario);
@override
void trabalhar() {
print('$nome está supervisionando a equipe e o salão.');
}
}
// Função principal
void main() {
var cozinheiro = Cozinheiro('Pedro', 3500);
var garcom = Garcom('Francisco', 2200);
var gerente = Gerente('Andre', 5000);
// Exibe informações
cozinheiro.exibirInfo();
garcom.exibirInfo();
gerente.exibirInfo();
print('\n--- Funcionários em ação ---');
cozinheiro.trabalhar();
garcom.trabalhar();
gerente.trabalhar();
}