Нет, вы не можете. Интерфейсы имеют , которые должны быть реализованы одноименным методом в Java.
Вы можете использовать аннотацию @Override
с реализациями интерфейса (начиная с Java 6), что помогает уточнить, что это метод, который нельзя просто произвольно переименовать.
Один вариант для вашей второй проблемы может заключаться в создании класса реализации просто с целью переадресации вызова более конкретному методу. Возможно, вы захотите сделать это как вложенный или даже анонимный класс. Я не уверен, что я бы обычно делал бы это все же.
РЕДАКТИРОВАТЬ: увидев третий вопрос - нет, если у вас есть два интерфейса с одинаковой сигнатурой метода в Java, вы можете предоставить только одну реализацию :( О, и если у вас есть два интерфейса с одной и той же сигнатурой, но разной возвращайте типы, это еще хуже. Вы всегда можете написать метод Interface1 getInterface1()
, который возвращает экземпляр анонимного внутреннего класса, передающий методы Interface1
в "основной" класс.