Basic Generalization Concepts
Generalization is a defining characteristic of object-oriented software approaches and organizes classes by their similarities and differences. Generalization adds to the fabric of classes and associations and enriches a modeling language. This leads to smaller models with deeper insight.
Generalization couples a class (the superclass) to one or more variations of the class (the subclasses). The superclass holds common information (attributes, operations, and associations). Each subclass adds specific information. Generalization organizes classes by their similarities and differences, structuring the description of objects. Generalization can arise from requirements that list structural alternatives. ...