Explain the core concepts of Object-Oriented Programming (OOP) and how you apply them in your automation frameworks.