1. Classes are blueprints that define objects with attributes (data members) and behaviors (member functions). Objects are instantiated from classes.
2. The Time class implements a time abstract data type with data members for hours, minutes, seconds and member functions to set time and print time in different formats.
3. Classes allow for encapsulation of data and functions, information hiding of implementation details, and software reusability through class libraries.