Covariant means that subtypes of the given type may be returned.
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.