As already mentioned, the standard is defined in this way and is not included in the decision-making process. I can only fool my $ 0.02.
These are not so much duplicate logical interfaces as the standard for creating an API that you would like to be flexible. This is considered good design practice, even in languages ββthat support multiple inheritance, to provide APIs.
Given the current state of the IDE, itβs pretty simple not to do this in advance, and then reorganize later when you decide that you need several implementations of this type.
There may also be cases of use against this, where inside your code you have a strong dependence on the functionality of the class and due to another implementation that your code may break. This is the meaning:
ClassA a = new ClassA();
but not
InterfaceA a = new ClassA();
This can lead to unexpected behavior.
source share