Architecting and designing > UML 2.5 > Relationships > Substitution
  
Substitution
You can create a Substitution relationship between any two Classifiers in UML. A Substitution is a relationship between two Classifiers which signifies that the substitutingClassifier complies with the contract specified by the contract Classifier.
This implies that instances of the substitutingClassifier are runtime substitutable where instances of the contract Classifier are expected. Substitution, unlike specialization, does not imply inheritance of structure, but only compliance of publicly available contracts.
Substitution requires:
Interfaces implemented by the contract Classifier are also implemented by the substitutingClassifier or else the substitutingClassifier implements a more specialized Interface type.
Any Port owned by the contract Classifier has a matching Port owned by the substitutingClassifier.
Relates
The Substitution relationship can be drawn like this:
From
To
Any Classifier
Any Classifier
Example
This graphic is described in the surrounding text.
See also
Association
Connector
Dependency
Extension
InformationFlow
Realization
Collaboration Property to Part
Comment to AnnotatedElement
Component Provides (Realizes) Interface
Component Requires (Uses) Interface
Constraint to ConstrainedElement
ElementGroup to Element
Generalization
Instance Specification Relationships
Package Containment
Package Import
Port Provides (Realizes) Interface
Port Requires (Uses) Interface
Go up to
Relationships