Основной метод пытается получить доступ к var, но приводит к неоднозначному вызову. Зачем? Экземпляр переменной var в Base1 в любом случае недоступен (видимо?) Из статического контекста.
class Base1 {
int var;
}
interface Base2 {
public static final int var = 0;
}
class Test extends Base1 implements Base2 {
public static void main(String args[]) {
System.out.println("var:" + var);
}
}