Whenever you're ready, walk me through how you'd approach this.
What are the differences between an interface and an abstract class, and when would you use each?
Explain the distinction in terms of inheritance, shared implementation, and state. Keep your answer focused on Kotlin and mention any practical rule you use to choose between them.