Concept A is a generalization of concept B if and only if:
  • every instance of concept B is also an instance of concept A; and
  • there are instances of concept A which are not instances of concept B.

Equivalently, A is a generalization of B if B is a specialization of A.

For instance, 'Animal' is a generalization of 'Bird' because every bird is an animal, and there are animals which are not birds (dogs, for instance).

See also: inheritance (object-oriented programming), faulty generalization