Метод какого интерфейса будет вызван?
Есть вот такие интерфейсы:
public interface A {
void say();
}
public interface B {
void say();
}
есть класс реализующий эти интерфейсы:
public class Test implements A, B {
@Override
public void say() {
System.out.println("SAAAY");
}
}
Допустим создаем экземпляр класса и вызван метод say():
Test test = new Test();
test.say();
Метод какого интерфейса будет вызван? Как вообще работает компиляция вот этого класса?
Ответы (1 шт):
Автор решения: Roman Konoval
→ Ссылка
В интерфейсе нет реализации, так что будет вызван метод из класса Test.
В месте вызова:
test.say();
компилятор вставит специальную инструкцию jvm, суть которой в том, что будет вызван метод say у класса объекта test, т.е. в данном случае метод из класса Test.