In this example, base class Singleton provides getMessage() method that returns "Hello world!" message.
It's subclasses UppercaseSingleton and LowercaseSingleton override getMessage() method to provide appropriate representation of the message.
//Yeah, we'll need reflection to pull this ...