Whenever you're ready, walk me through how you'd approach this.
What are the core principles of object-oriented programming? Explain encapsulation, abstraction, inheritance, and polymorphism, and give a simple example of each.