1
resposta

06 Mão na massa: a equipe do bistrô

// 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();
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Zilda! Como vai?

Agradeço por compartilhar.

Seu código ficou ótimo! Você aplicou muito bem os conceitos de herança e polimorfismo, criando subclasses que personalizam o comportamento do método trabalhar() para cada função. A estrutura está clara e o uso do super() foi feito corretamente.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!