Whenever you're ready, walk me through how you'd approach this.
Explain the difference between abstract classes and interfaces in Java. When would you use each, and what trade-offs do they introduce in object-oriented design?