Java 8ではinterfaceにstaticメソッドを記述できるようになりました。
interfaceに関する変更点として、Java 8ではdefaultメソッドが有名ですが、
他の変更点としてstaticメソッドが定義できるようになりました。
具体的には
次のようなメソッドが定義できます。
public interface Java8TestInterface { public static void hello(){ System.out.println("Hello World!!"); } }
実行するには次のようにします。
// 実行可能
Java8TestInterface.hello();
このstaticメソッドはInterfaceから実行できて、implementしたクラスは自動で
該当メソッドを持っているわけではありません。
public class Java8TestImpl implements Java8TestInterface { } // コンパイルエラーになる Java8TestImpl.hello();
これの派生でmainメソッドをinterfaceに実装して実行できるようになりました。
public interface Java8TestInterface2 { public static void main(String[] args){ System.out.println("Hello World!!"); } }
実行結果:
run: Hello World!!
どうでもよい無駄知識ですが。