2010-03-18 12 views
7

Wenn Sie ein Vererbungsschema ziehen in der Regel SieWarum steigt der Pfeil in der Vererbung?

gehen Basis
 
         Base 
         ^
          | 
         Derived 

Abgeleitet erstreckt. Warum steigt der Pfeil?

Ich dachte, es bedeutet, dass "Abgeleitet kommuniziert mit Base" durch Aufrufen von Funktionen in es, aber Base kann Funktionen in Abgeleitet nicht aufrufen.

Antwort

5

AFAIK eine der Gründe ist Notationskonsistenz. Alle anderen gerichteten Pfeile (Abhängigkeit, Aggregation, Komposition) zeigen vom Abhängigen zum Abhängigen.

Bei der Vererbung hängt B von A ab, aber nicht umgekehrt. Der Pfeil zeigt also von B nach A.

+1

Vererbung ist eine Form der Abhängigkeit – krosenvold

+1

Vererbung ist materielle Implikation. 'B => A 'bedeutet" jedes B bedeutet ein A ". – Apocalisp

0

B ist das Subjekt, A ist das Objekt, Aktion ist "erben". Also wirkt B auf A, also die Richtung des Pfeils.

0

Ich denke, der Punkt auszudrücken ist „Verallgemeinerung“: A ist eine Verallgemeinerung von B.

diese Weise wird der Pfeil das gleiche Konzept wie in Erweiterung zum Ausdruck bringt, sondern geht dem „richtigen“ Weg

1

Ich denke immer, dass B mehr Sachen hat als A (Unterklassen haben oft mehr Methoden als Oberklassen), daher bekommt B das breite Ende des Pfeils und A bekommt das spitzes Ende!

2

In UML wird der Pfeil als "Generalisierungs" -Beziehung bezeichnet und signalisiert nur, dass jedes Objekt der abgeleiteten Klasse ebenfalls ein Objekt der Klasse Base ist.

Aus dem Überbau 2.1.2:

A Generalization is shown as a line with a hollow triangle as an 
arrowhead between the symbols representing the involved classifiers. 
The arrowhead points to the symbol representing the general 
classifier. This notation is referred to as the “separate target style.” 

nicht wirklich eine Antwort, obwohl :-) auf die Frage

1

den Pfeil Lesen als „erbt“ und es macht Sinn. Oder, wenn Sie möchten, denken Sie daran, wie die Richtung Anrufe gemacht werden können.

+0

Ich stimme Ihrem ersten Teil zu, aber im Hinblick auf den zweiten Teil ist Folgendes möglich: [Aufruf der abgeleiteten Klassenfunktion von der Basisklasse ] (http://stackoverflow.com/a/4869284/2361131) – harshvchawla

Verwandte Themen