When to use abstract classes and when interfaces.
C# interface.