なぜ静的メソッドがJava 8からサポートされていますか?以下のコードのmainメソッドの2行の違いは何ですか?Java 8からのインタフェースの静的メソッドの目的は何ですか?
package sample;
public class A {
public static void doSomething()
{
System.out.println("Make A do something!");
}
}
public interface I {
public static void doSomething()
{
System.out.println("Make I do something!");
}
}
public class B {
public static void main(String[] args) {
A.doSomething(); //difference between this
I.doSomething(); //and this
}
}
我々は上記を参照できるように、私も、我々は別のクラスで同じ静的メソッドを作成し、それを呼び出すことができるとき、それはインターフェースの静的メソッドを持っているのに役立つだろうどのような目的B.に実装されていませんか?モジュール性以外の目的で導入されたのか?また、モジュール性とは、次のような意味です:
public interface Singable {
public void sing();
public static String getDefaultScale()
{
return "A minor";
}
}
同様の方法を組み合わせるだけです。
これは説明する必要があります。https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html – Marvin
違いはありません。 – Professor901
静的メソッドは、クラスを実装するオーバーライドしないデフォルトメソッドを提供します。メソッドロジックがすべての実装に複製されている場合は特に便利です。 PopSongとRockSongはそれを実装することができ、両方ともデフォルトの位取りはAマイナーになります。 –