@@ -121,10 +121,10 @@ class CompteEstalvi : Compte {
## Relacions entre objectes
A més dels conceptes anteriors (herència, composició i agregació), existeixen altres tipus de relacions entre objectes:
A més dels conceptes anteriors (herència, composició i agregació), existeixen altres tipus de relacions entre objectes. Es poden ordenar segons com d'acoblats deixen els objectes, des de la dependència puntual fins a la composició, en què una part no pot viure sense el seu tot:
***Associació**: un objecte fa referència a un altre.
***Dependència**: un objecte rep una referència en una de les seves operacions.
***Associació**: un objecte manté una referència a un altre com a part de la seva estructura (habitualment un camp), de manera duradora.
***Dependència**: un objecte només fa servir un altre de forma puntual dins d'una operació (com a paràmetre, variable local o valor de retorn), sense guardar-ne cap referència.
El diagrama següent mostra totes les relacions, incloent les ja explicades. S'utilitzen com a exemple classes de la biblioteca estàndard de Java (`Number`, `Double`, `Comparable`), que tenen equivalents directes en C# (`Object`, `Double`, `IComparable`).
@@ -200,12 +200,14 @@ Object1 ..> Object2
@enduml
```
1.**Herència** de `Number` i implementació de `Comparable`
1.**Associació** entre `Child1` i `Parent1`
1.**Associació navegable** des de `Child2` cap a `Parent2`
1.**Agregació**: `Wheel` pot existir sense `Car`
1.**Composició**: `Heart` no pot existir sense `Human`
1.**Dependència**: `Object1` usa l'`Object2`
Cada relació que hi apareix es llegeix així:
1.**Herència**: `Double` és un `Number`, i per tant n'hereta els camps i mètodes. Al diagrama, un triangle buit apunta de la subclasse cap a la superclasse. `Double` també **implementa** (realitza) la interfície `Comparable`, dibuixada amb el mateix triangle però amb línia discontínua: es compromet a oferir-ne les operacions.
1.**Associació**: `Parent1` i `Child1` es coneixen i es referencien mútuament, sense cap extrem privilegiat (línia simple, sense punta). Tot i els noms, aquí no hi ha herència sinó una relació de domini: pare i fill s'associen.
1.**Associació navegable**: com l'anterior, però amb un únic sentit. `Child2` pot accedir a `Parent2`, però no a l'inrevés; una punta de fletxa oberta n'indica la direcció.
1.**Agregació**: `Car` es compon de parts com `Wheel`, però aquestes poden existir per separat: una roda es pot treure del cotxe i seguir sent útil. Es dibuixa amb un rombe buit al costat del tot (`Car`).
1.**Composició**: `Human`**posseeix** les seves parts; si desapareix, se les emporta. Un `Heart` no té sentit fora d'un `Human`. Es dibuixa amb un rombe ple al costat del tot.
1.**Dependència**: `Object1` només fa servir `Object2` de manera puntual (per exemple, rebent-lo com a paràmetre d'un mètode), sense guardar-ne cap referència. És l'acoblament més feble i es dibuixa amb una fletxa discontínua.