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