У меня есть класс, определенный с помощью интерфейсаИспользовать методы, объявленные в реализации, которые не определены в интерфейсе
public interface Test {
void testMethod();
}
Test test = new TestImpl();
public class TestImpl implements Test {
@Override
public void testMethod() {
//Nothing to do here
}
public void anotherMethod() {
//I am adding this method in the implementation only.
}
}
Как я могу позвонить anotherMethod?
test.anotherMethod(); //Does not work.
Я хочу, чтобы иметь возможность определить несколько методов в реализации только потому, что в моем рабочем коде, интерфейс Test охватывает довольно широкий спектр классов и реализуется несколько классов. Я использую методы, определенные в реализации, для установки зависимостей, которые не охватываются рамкой DI в моем модульном тестировании, поэтому методы меняются от реализации к реализации.
Я не думаю, что у нас достаточно информации для определения того, что создание интерфейса2 является лучшим вариантом здесь. Добавление методов в класс может быть прекрасным, в зависимости от того, что ему нужно делать. – Pablo
Да, я согласен с вами, но проблема заключается в возможности получить доступ к ** жирным ** различным ** жирным ** реализациям через интерфейс. Поэтому вы должны помнить о наследовании. – Artemis