Вопрос в том, почему по умолчанию решено иметь переменную final и static, а методы - public и abstract.
Есть ли какая-то конкретная причина для того, чтобы сделать их неявными, переменными как окончательными и статическими, так и методами как публичными и абстрактными.
Почему они не разрешают статический метод, но допускают статическую переменную?
У нас есть интерфейс, чтобы иметь возможность множественного наследования в Java и избежать проблемы с алмазом. Но как он решает проблему алмазов, так как не допускает статических методов.
В следующей программе оба интерфейса имеют метод с одним и тем же именем ... но при реализации только одного, который мы реализуем ... Так ли решается проблема с алмазом?
interface testInt {
int m = 0;
void testMethod();
}
interface testInt1 {
int m = 10;
void testMethod();
}
public class interfaceCheck implements testInt, testInt1{
public void testMethod() {
System . out . println ( "m is"+ testInt.m );
System . out . println ( "Hi World!" );
}
}