Program 1: ShiftsDesign a class named Employee. The class should keep the following information fields:1. Employee name2. Employee number in the format XXX-L where each X is a digit within the range of 0-9 and the L is aletter within the range of A-M.3. Hire dateWrite one or more constructors and the appropriate accessor and mutator methods for the class. Next write a class named ProductionWorker that extends the Employee class. The ProductionWorker class should have fields to hold the following information:1. Shift (an integer)2. Hourly pay rate (a double)The workday is divided into 2 shifts day and night. The shift field will be an integer value representing the shift that the employee works. The day is shift 1 and the night shift is shift 2. Write one or more constructors and the appropriate accessor and mutator methods for the class. Demonstrate the classes by writing a program called Shifts that uses the ProductionWorker object.Program 2: LeaderDesign a TeamLeader class that extends the ProductionWorker class. The TeamLeader class should have fields for the monthly bonus amount the required number of training hours and the number of training hours that the team leader has attended. Write one or more constructors and the appropriate accessor and mutator methods for the class. Demonstrate the use of the TeamLeader object in a program called Leader.