Abstract classes don’t always stand alone, but spring to life as a part of an object cluster. Here’s how to ensure you’re always instantiating the right ones.