1
resposta

Controle de Reserva

package Relatorio.ControleDeReserva;
public class Reserva {

    public void reservar() {
        System.out.println("Reserva realizada");
    }

    public void reservar(String data) {
        System.out.println( "Reserva feita para o dia " + data);
    }

    public void reservar(String data, int totalDePessoas) {
        System.out.println("Reserva feita para o dia " + data + " para " + totalDePessoas + " pessoas");
    }

}

package Relatorio.ControleDeReserva;

public class ReservaVip extends Reserva{

    @Override
    public void reservar() {
        System.out.println("Reserva vip confirmada com atendimento exlusivo");
    }
}

package Relatorio.ControleDeReserva;
public class Principal {
    public static void main(String[] args) {

        Reserva reserva = new Reserva();

        reserva.reservar();
        reserva.reservar("10/04");
        reserva.reservar("12/04", 4);

        Reserva vip = new ReservaVip();
        vip.reservar();
    }
}
1 resposta

Oi, Wanderson! Como vai?

Agradeço por compartilhar.

Muito legal como você aplicou sobrecarga de métodos na classe Reserva e também utilizou herança com sobrescrita na classe ReservaVip. Isso mostra que você entendeu bem como reutilizar comportamentos e adaptar funcionalidades quando necessário.

A forma como você instanciou ReservaVip usando o tipo Reserva também reforça bem o conceito de polimorfismo.

Você pode usar o método toString() para representar objetos de forma mais organizada, principalmente quando quiser exibir informações completas de uma reserva:


class Reserva {
    String data;
    int pessoas;

    public String toString() {
        return "Reserva para " + data + " com " + pessoas + " pessoas";
    }
}

Esse código cria uma representação em texto do objeto, facilitando exibicao de informações no console.

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