Contravariant means that supertypes of the given type may be accepted.
no subtypes hierarchy
shared actual String string
A developer-friendly string representing the instance.
Concatenates the name of the concrete class of the
instance with the hash of the instance. Subclasses
are encouraged to refine this implementation to produce
a more meaningful representation.