0
respostas

[Projeto] Exercícios: Heranca e Polimorfismo

Adicionando ao projeto Hotel Herança e Polimorfismo.

// arquivo quartos.dart

class Quartos {
  final String _numeroQuarto;
  final int _numeroDeDiarias;
  double? valorDiaria;

  Quartos(this._numeroQuarto, this._numeroDeDiarias, {this.valorDiaria});

  void reservar() {
    print('O quarto $_numeroQuarto foi reservado');
  }

  void calcularValorTotal() {
    final double valorTotal;

    if (_numeroDeDiarias.toString().isNotEmpty &&
        valorDiaria != null &&
        valorDiaria.toString().isNotEmpty) {
      valorTotal = _numeroDeDiarias * valorDiaria!;

      print(
          'O valor totas da sua reserva para $_numeroDeDiarias dias é de: R\$ $valorTotal');
    } else {
      print('deu erro calucar valor total de diarias');
    }
  }

  void cafeDaManha(String tipo) {
    if (tipo == 'Medio') {
      print('Servindo café da manhã no quarto $tipo');
    } else if (tipo == 'Luxo') {
      print('Servindo café da manhã no quarto $tipo');
    } else {
      print('Serviço não disponível para quarto $tipo');
    }
  }
}

class Simples extends Quartos {
  final double _diariaSimples = 80.0;

  Simples(super._numeroQuarto, super._numeroDeDiarias, {super.valorDiaria}) {
    if (valorDiaria == null || !valorDiaria.toString().isNotEmpty) {
      super.valorDiaria = _diariaSimples;
    } else if (valorDiaria.toString().isNotEmpty) {
      super.valorDiaria = super.valorDiaria;
    }
  }
}

class Medio extends Quartos {
  final double _diariaMedio = 250;

  Medio(super._numeroQuarto, super._numeroDeDiarias, {super.valorDiaria}) {
    if (valorDiaria == null || !valorDiaria.toString().isNotEmpty) {
      super.valorDiaria = _diariaMedio;
    } else if (super.valorDiaria.toString().isNotEmpty) {
      super.valorDiaria = super.valorDiaria;
    }
  }
}

class Luxo extends Quartos {
  final double _diariaLuxo = 1000.0;

  Luxo(super._numeroQuarto, super._numeroDeDiarias, {super.valorDiaria}) {
    if (super.valorDiaria == null || !super.valorDiaria.toString().isNotEmpty) {
      super.valorDiaria = _diariaLuxo;
    } else if (super.valorDiaria.toString().isNotEmpty) {
      super.valorDiaria = super.valorDiaria;
    }
  }

  void servicoDeQuarto(String tipo) {
    print('Limpando o quarto $tipo.');
  }
}


// arquivo hotel.dart

import 'quartos.dart';

void main(List<String> arguments) {
  Simples quartoSimples = Simples('101', 6);
  quartoSimples;
  quartoSimples.reservar();
  quartoSimples.calcularValorTotal();
  quartoSimples.cafeDaManha('Simples');
  print('');

  Medio quartoMedio = Medio('201', 3);
  quartoMedio;
  quartoMedio.reservar();
  quartoMedio.calcularValorTotal();
  quartoMedio.cafeDaManha('Médio');
  print('');

  Luxo quartoLuxo = Luxo('Suite', 4);
  quartoLuxo;
  quartoLuxo.reservar();
  quartoLuxo.calcularValorTotal();
  quartoLuxo.cafeDaManha('Luxo');
  quartoLuxo.servicoDeQuarto('Luxo');
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade