> This might be a silly question but... What's the difference between an interface with a default method and an abstract class with an implementation for that method?
There are two key differences that you should be aware of:
1. Because you can inherit from multiple interfaces, you can inherit
implementations from multiple default methods.
2. When you dispatch a call to an inherited method the selection
mechanism is different. Specifically any class based implementation
of a method will override a default method, even if the default method
is closer in the class hierachy.