The primary goal of type introspection with class instances is to reason about the structure/capabilities of the object based on how it was created.
Not really. Type introspection is usually used to get the latent type rather than the declared type. For example, so that the object can be downcast to a latent subtype, and additional subtype methods can be invoked. How it was created is basically immaterial.
Share this highlighthttp://www.safaribooksonline.com/a/you-dont-know/14996774/