интерфейс, но это сделало бы интерфейс более неуклюжим, чем это должно быть.
у статические методы поддерживаются в 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";
}
}
Просто для того, чтобы соединить похожие методы.