# Unit 6 – Basic Demo: School Staff

A school has teachers and administrators. Both will introduce themselves
when asked — but a teacher will mention the subject they teach, and an
administrator will mention the department they manage.

## Setting up

1. Compile `StaffMember`, `Teacher`, and `Administrator`.

## Experimenting

2. Create `Teacher("Ms Patel", "T001", "Mathematics")` and call
   `introduce()`. She greets you with her role, name, ID, and subject.
3. Create `Administrator("Mr Lee", "A001", "Finance")` and call
   `introduce()`. Same greeting format — but the role and the closing
   detail are different.
4. Create a plain `StaffMember("Alex", "S001")` and call `introduce()` —
   the greeting is shorter; there is no subject or department to add.
5. Call `describe()` on the teacher and on the administrator — compare
   the two strings.

## What to look at in the code

6. Open Teacher and find `describe()`. It starts by calling
   `super.describe()` to get the shared name-and-ID part, then adds the
   subject on the end. Open StaffMember to see exactly what that shared
   part looks like.
7. Find the `open` keyword in StaffMember — on the class itself and on
   `describe()` and `role()`. Without it, Teacher and Administrator would
   not be allowed to provide their own versions of those methods.
