Реализация интерфейса по умолчанию в C#
Метод с телом в интерфейсе задаёт поведение по умолчанию. Класс может ничего не писать и получить готовую реализацию, либо объявить свой метод с тем же контрактом и заменить её.
Класс Widget не объявляет свой Describe. Через интерфейс вернётся строка из интерфейса. Вызов через интерфейс нужен, когда метод не объявлен в публичном API класса, а живёт только в контракте:
Widget w = new Widget();
Console.WriteLine(((INamed)w).Describe());
interface INamed { string Describe() => "item"; }
class Widget : INamed;
Верните из метода интерфейса по умолчанию строку "v1", не объявляя этот метод в классе.
Объявите в классе свою версию метода и выведите строку "v2".