A generalisation is where:

  • characteristics (attrs / ops), associations, and aggregations that are specified for the super-class are passed on to its sub-classes
  • every instance of a sub-class is at the same time an instance of the super-class
  • sub-class inherits all characteristics, associations, and aggregations of the super-class except private ones
  • sub-class may have further characteristics, associations, and aggregations Generalisations can also be transitive.

UML allows multiple inheritance, so a class may have multiple super-classes.