Miroslav Lehotsky wrote:By second scenario, you would create ambiguity, because you can call static method of a class through instance of that class, BUT you can NOT call static method of an interface via instance of its implementation, so there is no ambiguity in that case.
I suspect that the reason for this difference is that a class can only extend one class, whereas it can implement more than one interface. So then what if a class implements two interfaces which both have a static method named doStuff()? To allow access to doStuff() via an instance of that class would clearly be ambiguous, and so that's why it isn't permitted.