A class is a blueprint or template defining the data (attributes) and behavior (methods) that objects of that type will have. Classes encapsulate related state and operations into a single unit, enabling code organization and reuse. In most object-oriented languages, classes support inheritance: a subclass inherits the interface and implementation of its parent class and may override or extend them.