Learning Interfaces in C#