# Unit 8 – Basic Practice: Reservable, HotelRoom, RestaurantTable

A hotel room and a restaurant table have nothing in common — until both 
need to be reserved. This practice builds a `Reservable` interface that 
any bookable item can implement.

## Instructions

### Reservable

1. All three methods are stubbed. For `capacity()` — think whether the 
   interface know the answer on its own, or must each implementing class 
   decide.
2. Implement `isAvailableFor()`.
3. Implement `reservationSummary()`.

### HotelRoom

1. A hotel room has a room number and a maximum occupancy. Add any 
   constructor parameters the class needs — which of these can change 
   after the room is created?
2. Make `HotelRoom` implement `Reservable` and provide the required 
   method.
3. Override `reservationSummary()` to include the room number, e.g.: 
   `"Room 204 — fits up to 2 guest(s)"`

### RestaurantTable

1. A restaurant table has a table number and a seating count. Add any 
   constructor parameters it needs.
2. Make `RestaurantTable` implement `Reservable` and provide the 
   required method.
3. Do not override `reservationSummary()` — the default is sufficient.

### Testing

1. Create `HotelRoom(204, 2)`.
2. Call `reservationSummary()` — should include the room number.
3. Call `isAvailableFor(1)` — should return `true`.
4. Call `isAvailableFor(3)` — should return `false`.
5. Create `RestaurantTable(7, 4)`.
6. Call `reservationSummary()` — should use the default format.
7. Call `isAvailableFor(4)` — should return `true`.
