1
resposta

[Projeto] ControleDeReservas

package br.com.nadson.desafiosc9.modelo;

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 pessoas){
        System.out.printf("Reserva feita para dia %s para %d pessoas",data,pessoas);
    }

}
package br.com.nadson.desafiosc9.modelo;

public class ReservaVip extends Reserva{
    public void reservar(){
        System.out.println("Reserva Vip realizada com tratamento especial");
    }

}
package br.com.nadson.desafiosc9.principal;

import br.com.nadson.desafiosc9.modelo.Reserva;
import br.com.nadson.desafiosc9.modelo.ReservaVip;

public class ControleDeReservas {
    public static void main(String[] args) {
        Reserva reserva= new Reserva();
        reserva.reservar();
        reserva.reservar("12/12/2024");
reserva.reservar("12/12/2024", 2);

Reserva vip=new ReservaVip();
        System.out.println("-----------------");
vip.reservar();



    }
}
1 resposta

Seu código está correto e demonstra muito bem a Sobrecarga (ter o método reservar aceitando diferentes parâmetros na mesma classe) e a Sobrescrita (a classe ReservaVip herdando de Reserva mas alterando o comportamento da mensagem). O Java entende automaticamente qual método usar baseando-se nos dados enviados ou se o objeto é VIP.
Para o código ficar perfeito, basta organizar as linhas (uma instrução por linha) e adicionar o símbolo %n no comando printf para que ele pule a linha corretamente no final do texto.
Abaixo, a versão ajustada e limpa:

package br.com.nadson.desafiosc9.principal;

// MODELO (Classes juntas para facilitar a leitura)
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 pessoas) {
        // O %n garante a quebra de linha após o texto
        System.out.printf("Reserva para %s para %d pessoas%n", data, pessoas);
    }
}

class ReservaVip extends Reserva {
    @Override
    public void reservar() {
        System.out.println("Reserva Vip realizada com tratamento especial");
    }
}

// PRINCIPAL
public class ControleDeReservas {
    public static void main(String[] args) {
        Reserva reserva = new Reserva();
        reserva.reservar();
        reserva.reservar("12/12/2024");
        reserva.reservar("12/12/2024", 2);
        
        System.out.println("-----------------");

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