Composition vs Aggregation: Both use diamond notation. The difference is lifecycle — in composition, the contained object cannot exist without the container. In aggregation, it can.
Association vs Dependency: Association implies a persistent reference (field). Dependency implies a transient use (local variable, parameter).
Inheritance vs Realization: Inheritance is class→class. Realization is class→interface.
Abstract class: Name written in italic in diagrams.
<<extend>> / <<include>>: These are use case diagram relationships, not class diagram relationships. Do not confuse with Inheritance/Realization.
Mermaid Example
classDiagram
Animal <|-- Dog
IAnimal <|.. Dog
Car *-- Engine
Team o-- Player
Customer --> Order
Order ..> TaxCalculator