Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications. OOP techniques include data abstraction, encapsulation, inheritance, and polymorphism. A class defines members like data fields and methods to enable class instances to maintain state and behavior. For example, an instance of the Fruit class would be a Fruit object. A superclass is a class that other classes are derived from, with the derived classes known as subclasses. Inheritance in OOP allows for code reuse by creating objects that are based on previously created objects.