Explain the core concepts of Object-Oriented Programming and how you have applied them in your automation frameworks.