2015-03-08 6 views
8

Wenn Klasse Human einige Methoden von Superklasse erbt Mammal unverändert (wie laysEggs:() -> false) und überschreibt andere Verfahren (wie postsToStackOverflow :() -> true), gibt es einen Unterschied zwischen dem, wie die verschiedenen Methoden für Human in Abschnitt des UML-Klassendiagramm statischen angegeben? Werden zum Beispiel nur die überschriebenen Methoden in der Box für Human angezeigt oder werden beide mit einer Anmerkung für die überschriebenen Methoden angezeigt?Gibt es eine Konvention zum Anzeigen von überschriebenen Methoden in statischen UML-Klassendiagrammen?

Antwort

12

Nein, gibt es nicht. Sie können nur erkennen, dass eine Methode überschrieben wird, indem Sie die Methoden der Klasse überprüfen, von der geerbt wird.

+0

Danke. Ich nehme an, du meinst "überschrieben", nicht "überschrieben". –

+1

Ja. Dies ist Denglish ;-) –

+0

Eine Art von eklatanter Unterlassung in UML, da es einfach wäre, nur ein Zeichen am Anfang oder Ende einer Methode anzugeben. Über das Beste, was Sie tun können, ist eine Notiz, die anzeigt, dass es überschrieben oder mit ist ein Teil des Codes aus der überschriebenen Methode. – Hal50000

5

Obwohl nicht in dem UML-Standard spezifiziert ist, folgt eine Notation, um anzuzeigen, zu verstehen, wenn eine Funktion eine andere überschreibt:

+ toString() : String <<override>> 
+0

Bitte beachten Sie, dass <> im UML-Spezifikationsdokument nicht definiert ist, daher sollten Sie normalerweise ein Profil definieren oder ein bereits vorhandenes Profil verwenden, das dieses Stereotyp definiert. – granier

+0

Sind Profile im UML-Standard definiert oder wäre das ein Merkmal der Diagrammsoftware? @granier – ThisClark

1

I Methodendeklaration zu duplizieren, wenn ich das geerbte Klasse zeigen wollen, dass es außer Kraft gesetzt werden, in anderen Fall einfach Deklaration auslassen.