Мой вопрос: если интерфейс, который реализуется неявно путем расширения класса, который уже реализует его, должен быть явно реализован классом, если класс хочет рекламировать факт, что он выполняет контракт этого интерфейса.
Например, если вы хотите написать класс, который выполняет контракт интерфейса java.util.List
. Вы реализуете это, расширяя класс java.util.AbstractList
, который уже реализует интерфейс List
. Вы явно заявляете, что вы реализуете List?
public class MyList extends AbstractList implements List
Или вы сохраняете ввод, используя неявный способ?
public class MyList extends AbstractList
Какой способ считается лучшим стилем? Какие причины вы предпочитаете так или иначе? В каких ситуациях вы предпочитаете путь 1 или путь 2?