У меня есть один класс и два интерфейсаКласс должен быть объявлен как абстрактный или реализовать абстрактный метод
public class A implements B, C {
public static void main(String[] args) {
A a = new A();
a.foo();
}
}
public interface B {
default void foo(){
System.out.println("foo in B");
}
}
public interface C {
void foo();
}
Дело я беспокоит, что Java не компилировать это дает ошибку, что я должен реализовать метод от C. Следовательно, у меня есть вопрос. Почему тело по умолчанию не покрывает эту часть, я имею в виду единственную вещь, о которой нужно беспокоиться, заключается в том, что все методы имеют свои реализации, верно? Но для класса A очевидно, что реализация указана в B.
Так почему же Java дает эту ошибку?
Круто, не знал этого. Благодаря! – markspace