- Classes describe types of objects and what they can do, while objects are specific instances of a class like a button. A class can be used to create many similar objects.
- Object-oriented programming allows for reusability through inheritance, where a new class can extend an existing class and reuse its properties and methods. Polymorphism allows the same method name to operate correctly depending on the object.
- Encapsulation combines an object's properties and methods into a single package. Inheritance allows a subclass to inherit from a parent class to extend and customize its functionality.