Why does the arrow go up in inheritance?

inheritance, language-agnostic

Solution

AFAIK one of the reasons is notational consistency. All other directed arrows (dependency, aggregation, composition) points from the dependant to the dependee.

In inheritance, B depends on A but not vice versa. Thus the arrow points from B to A.

Problem

When you draw an inheritance diagram you usually go ``` Base ^ | Derived ``` Derived extends Base. So why does the arrow go up? I thought it means that "Derived communicates with Base" by calling functions in it, but Base cannot call functions in Derived.

Original source

Related problems