Ваш первый пример имеет:
public class Base {
, который не реализует Interface1
Однако, ваш второй пример имеет:
public class Base implements Interface3 {
, который реализует Interface3
Не уверен, что вы пытаетесь сделать здесь, но это предполагаемое поведение:
Интерфейсы
Когда класс реализует interface
, вы должны реализовать всеметодов в класс
Например:
public interface IFoo {
void bar();
}
и класс:
public class FooImpl implements IFoo {
// must implement bar method in IFoo
public void bar() {
System.out.println("I did something");
}
}
Наличие лямбды в основном методе не означает реализацию методов интерфейса.
Исправить?
Просто удалите implements Interface3
, вам не нужно реализовывать интерфейс в своем классе, чтобы иметь возможность его использовать.