Реализация элемента explict позволяет устранить неоднозначность
члены интерфейса с одинаковой подписью.
Без явных реализаций элементов интерфейса для класса или структуры было бы невозможно иметь разные реализации элементов интерфейса с одинаковой сигнатурой и типом возврата.
Почему явная реализация интерфейса не может быть публичной?
Когда член явно реализован, к нему нельзя получить доступ через экземпляр класса, а только через экземпляр интерфейса.
public interface IPrinter
{
void Print();
}
public interface IScreen
{
void Print();
}
public class Document : IScreen,IPrinter
{
void IScreen.Print() { ...}
void IPrinter.Print() { ...}
}
.....
Document d=new Document();
IScreen i=d;
IPrinter p=d;
i.Print();
p.Print();
.....
Реализованные реализации членов интерфейса недоступны через экземпляры классов или структур.