The Practical Dev's review of How do you choose between an interface and abstract class?