Да. Присваивание значения конкретного типа переменной типа интерфейса компилируется только если тип реализует все методы интерфейса. Явной декларации "implements" нет - компилятор проверяет наличие методов. Невыполнение контракта даёт ошибку компиляции.