1. Inheritance allows new classes called derived classes to be created from existing classes called base classes. Derived classes inherit all features of the base class and can add additional features.
2. An Employee base class was created to represent common properties of all employee types. HourlyEmployee and SalariedEmployee derived classes were then created from Employee to represent specific employee types.
3. Derived classes inherit all non-private members of the base class but constructors must be explicitly called. Protected members are accessible to derived classes while private members are not.