Take the 2-minute tour ×  I am trying to understand generics in
a semantic way. For instance, abstract classes seemed to snap
into place for me when I read people refer to them as structures
that can set policy. Interfaces snapped when I read people refer
to them as collaboration contracts.  What are some good ways to
think about generics that might help me to differentiate them
from other OO structures and write more intelligent APIs?
share|improve this question Think of them as Type-Templates. – 
RBarryYoung Apr 6 '13 at 1:00 add comment  3 Answers  up vote 1
down vote accepted  Think of generic classes as stencils to make
other classes (similarly, generic functions are stencils for
making other functions). Type parameters serve as openings in
your stencils: by plugging in a concrete type into them, you
make the generic class or the generic function into a real class
or function. The type parameters "stick through" the designated
holes in the stencil, producing a complete definition.
share|improve this an