Encapsulation, inheritance, and polymorphism are widely recognized as the three core foundational pillars of Object-Oriented Programming (OOP). Exception handling is a general runtime control flow feature, and method overloading is a specific implementation of compile-time polymorphism rather than a distinct primary pillar.