Inheritance lets one class inherit attributes and methods from another, enhancing code reuse. For example, a Car
class can extend a Vehicle
class. Polymorphism allows methods to act differently based on the object type. Method overloading (compile-time) involves multiple methods with the same name but different parameters, while method overriding (run-time) enables a subclass to modify or extend the behavior of a superclass method.