interface A
{
public void f();
public void g();
}
class B implements A
{
public void f()
{
System.out.println("B.f()");
}
}
public class Main
{
public static void main(String[] args)
{
B tmp = new B();
tmp.f();
System.out.println("B.f()");
}
}
Я не реализуют весь метод в интерфейсе А в В и имеет ошибку,почему Java может работать с компиляции ошибки времени в затмении
The type B must implement the inherited abstract method A.g()
но почему он может получить вывод, что
B.f()
B.f()
Это невозможно. Я предполагаю, что у вас есть старый «класс B» в вашем пути к классам, который был скомпилирован против старой версии «интерфейса». –
@UwePlonus это просто тест, который с одним файлом в проекте. – CLS
вы не реализовали метод 'g()', который вызывает ошибку компиляции, и очень сильно, когда вы выполняете свой класс, его исполняющая последняя успешная скомпилированная версия – user902383