This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
The simple answer to all such questions is "because the Java Language Specification says so".
In many such questions, it would be possible to imagine how the feature under discussion might have been allowed. The language designers had to make judgements about what features would be useful, understandable, easy to implement in compilers/JVMs, and encourage good programming. Static methods in interfaces would fall down on several of those criteria.
Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.
Another answer is that they can. But such interfaces are called "abstract classes" and not "Interfaces" . Abstract classes and Interfaces are very similar in nature - they are both abstract (i.e. cannot be instantiated), and defines method signatures.
The difference is mainly that abstract classes can define method implementations as well - including static methods.
All methods in an interface are abstract. Static methods cannot be abstract, because they aren't polymorphic.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Joined: Apr 13, 2003
Thanks to all of you for your replies. It was helpful.