Интерфейс определяет контракт. Вы должны выполнить этот договор, внедрив всех его членов, если хотите его использовать.
Возможно, использование абстрактного класса подойдет вам лучше всего, так что вы можете определить поведение по умолчанию, допуская переопределения там, где вам нужно.