The idea behind such instantiations is usually giving thisThing a class from which it could create instances of anInterface through reflection. Compiler makes sure that the class that you pass to the constructor is compatible with anInterface, ensuring that casts like this