Вы можете рассматривать интерфейс как абстрактный класс, который предоставляет только объявления констант и прототипов методов. Классы могут затем реализовывать интерфейсы так же, как они могут наследовать от других классов. При реализации интерфейса класс должен реализовывать все методы, определенные в интерфейсе:
public interface MyInterface
{
void doSomething();
}
public class MyClass : MyInterface
{
public void doSomething()
{
}
}
MyInterface obj = new MyClass();
obj.doSomething();
Одной из приятных особенностей интерфейсов является то, что они поддерживают множественное наследование, в отличие от классов в .NET. Таким образом, вы можете реализовать несколько интерфейсов, а интерфейсы могут расширять несколько других интерфейсов.
Соглашение об именах для интерфейсов в .NET - «ISomething», так что вы можете догадаться, что символ - это интерфейс, если он начинается с «I». Кроме того, многие интерфейсы имеют имена, заканчивающиеся на «-able», например «IDisposable» или «ICloneable».
Концепция такая же, как в Java, вы можете прочитать больше об этом в Википедии .