Stephan van Hulst wrote:The reason for this is that inheritance of static methods is a bad idea. The Java designers got it wrong the first time. . . .
I think that the
static keyword had been used to mean something different in C and C++, so they didn't know about that problem. Eiffel has a concept of non‑object functions, and I can't remember whether they were inherited or not. I don't remember there being such restrictions however.
Of course, we have to remember that Eiffel used a dreadful inheritance structure with multiple inheritance and a “bottom” class in every inheritance tree as well as a two‑stage “top”. The two‑stage “top” is all right; only everything else is bad.