Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
An abstract class (implemented in VB using the MustInherit keyword) is very like an interface. It defines the members that must be implemented by an inheriting class but doesn’t usually provide any implementation. So how do you decide which to use? In practice, it isn’t that difficult. Just remember that interfaces represent a CanDo relationship, while classes (abstract or otherwise) represent an IsA relationship.
Let’s look at an example. Remember that weekly production schedule that Neil and Gordon need to prepare? I’ve added it to the basic Recipe class hierarchy. The only relationship the Schedule class has to the other classes in the hierarchy is that it HasA collection of Recipe items, but, like a Recipe, it can print itself.