рассматривают интерфейс как Контракт. Что вы делаете, так это говорите, что все, что является производным от вашего интерфейса (IFace), имеет гарантию наличия этих членов и / или методов. Это зависит от производного класса, чтобы фактически реализовать их. Еще одна вещь, которую он делает для вас, - это предоставление отношения «IsA» для классов, производных от интерфейса.
поочередно, вы могли бы сделать так ....
public class Face: IFace
{
public int NoseSize
{
get;
set;
}
public void foo()
{
this.NoseSize = 42;
int someSize = this.NoseSize;
}
}