public ClassB extends ClassA implements InterfaceA, InterfaceB {
// ...
}
Arrowheads are "closed" for type hierarchies
ClassB
ClassA
InterfaceA
InterfaceB
<<interface>>
<<interface>>
public ClassB extends ClassA implements InterfaceA, InterfaceB {
// ...
}
ClassB
ClassA
InterfaceA
InterfaceB
<<interface>>
<<interface>>
public ClassA {
private List<ClassB> myListOfB;
private ClassC myCObject;
}
public ClassC {
private ClassA myAObject;
}
?
?
?
ClassB
ClassA
ClassC
Arrowheads are "open" for associations
Identify the multiplicity of all associations:
Implements and extends relationships are relationships between types
Associations are relationships between objects
This class diagram reports on the relationships between objects of type ClassA, ClassB and ClassC
ClassB
ClassA
ClassC
1
1
3
"...there is hardly a difference between aggregations and associations during implementation, and the diagram may skip aggregation relations altogether."
Room 🚪
Building 🏢
secret hint for Felix