Olá!
Segue minha resolução:
- Classe Reserva:
package br.com.alura.exercicios;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Reserva {
static DateTimeFormatter dataFormatada = DateTimeFormatter.ofPattern("dd/MM/yyyy");
protected LocalDate dataReserva;
protected int numeroPessoas;
public Reserva(){
}
public Reserva(LocalDate dataReserva, int numeroPessoas) {
this.dataReserva = dataReserva;
this.numeroPessoas = numeroPessoas ;
}
public Reserva(LocalDate dataReserva) {
this.dataReserva = dataReserva;
}
public void reservar(){
if(!(dataReserva == null) && numeroPessoas != 0){
System.out.println("Reserva realizada para " + dataReserva.format(dataFormatada) + " para " + numeroPessoas + " pessoas.");
} else if (!(dataReserva ==null)) {
System.out.println("Reserva realizada para " + dataReserva.format(dataFormatada));
} else {
System.out.println("Reserva realizada!");
}
}
}
- Classe ReservaVip:
package br.com.alura.exercicios;
public class ReservaVip extends Reserva{
@Override
public void reservar(){
System.out.printf("Reserva VIP confirmada com atendimento exclusivo!");
}
}
- Main para rodar a aplicação:
package br.com.alura.exercicios;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
Reserva r = new Reserva();
Reserva r2 = new Reserva(LocalDate.parse("30/03/2026", formatter));
Reserva r3 =new Reserva(LocalDate.parse("01/04/2026", formatter), 4);
Reserva vip = new ReservaVip();
r.reservar();
r2.reservar();
r3.reservar();
vip.reservar();
}
}