Я знаю, что реализация интерфейса означает (технически), но я не уверен, понимаю ли я, что означает "контракт":
Предположим, что я делаю класс MyList, который реализует java.util.List (т.е. реализую все методы с компилируемым кодом), тогда MyList a List? ИЛИ мне нужно прочитать все комментарии методов, которые я переопределяю, и убедиться, что моя реализация выполняет эти "ожидания" от поведения?