First: Design a class named Employee with private fields for that person’s: (1) name, (2) ID number, and (3) hire date. The ID number should be in the format ###–C, where # is a digit, 0–9, and C is a character, an uppercase letter, A–M. Write no-arg, 1-arg (name), 2-arg (name & ID), and 3-arg constructors; and a public mutator and accessor method for each of the 3 fields. Test & demonstrate Employee works. Next: Design a class named ProductionWorker which extends the Employee class. ProductionWorker class should have 2 additional private fields: (1) Shift (an integer, 1, 2 or 3, equating to day, evening or graveyard) and (2) Hourly pay rate (a double). Write constructors for ProductionWorker class, referencing the base (or super) class (default and 5-arg); and write appropriate mutator and accessor methods for all fields, parent and child. Finally: Demonstrate use of an object, your methods and constructors in a test program, running several sets of data to indicate its function.
Second: Once the above tested and operating smoothly, design a class named ShiftSupervisor which extends the ProductionWorker class. In addition to the fields in the ProductionWorker class, this class will also have the following: (1) annual salary and (2) annual production bonus.
Write constructors for ShiftSupervisor class and appropriate mutator and accessor methods for all fields, derived and base classes. Demonstrate use of an object, your methods and constructors in a test program, running several sets of data to indicate its function.

How do I approach solving this problem?

It's not a problem, and you don't have to solve it. Just do what you have been told.
You have been given a very clear set of step-by-step instructions. Just follow them, one step at a time, exaclty like it says.
If you get stuck come back here and show where you have got to.