Whenever you're ready, walk me through how you'd approach this.
Explain the four main principles of Object-Oriented Programming, encapsulation, abstraction, inheritance, and polymorphism, with real-world examples. If helpful, illustrate them using simple Java code.