To add to the other replies, there is something in regards to implementing multiple interfaces you should look out for.
When you implement interfaces that share methods with the same or an ambiguous signature, it's no longer possible to predict to which interface the method belongs. This can become a serious problem if at least one of these interfaces provide a default
implementation.
You can try this yourself:
1. Without default implementation:
2. One with default implementation:
3. Both with default implementation: