2015-03-08 10 views
8

Se la classe Human eredita alcuni metodi dalla superclasse Mammal invariata (come laysEggs:() -> false) e sovrascrive altri metodi (come postsToStackOverflow :() -> true), c'è qualche differenza tra i diversi metodi sono indicati nella porzione dello schema classe statica UML per Human? Ad esempio, sono solo i metodi sovrascritti mostrati nella casella per Human o entrambi sono mostrati, con qualche annotazione per i metodi sovrascritti?Esiste una convenzione per mostrare i metodi sottoposti a override nei diagrammi di classi statiche UML?

risposta

12

No, non c'è. Puoi solo dire che un metodo viene sovrascritto controllando i metodi della classe da cui è ereditato.

+0

Grazie. Immagino tu intenda "sovrascritto", non "sovrascritto". –

+1

Sì. Questo è Denglish ;-) –

+0

Tipo di un'omissione abbagliante in UML considerando che sarebbe semplice specificare un carattere all'inizio o alla fine di un metodo, Circa il meglio che puoi fare è usare una nota che indica che è sovrascritta o con una parte del codice dal metodo sottoposto a override. – Hal50000

5

Anche se non specificato nella norma UML, che segue è una notazione intesa per indicare quando una funzione sovrascrive l'altro:

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

Si noti che <> non è definito nel documento delle specifiche UML, quindi per utilizzarlo normalmente è necessario definire un profilo o utilizzare un profilo già esistente che definisce questo stereotipo. – granier

+0

I profili sono definiti nello standard UML o questa sarebbe una caratteristica del software di diagrammi? @granier – ThisClark

1

duplico dichiarazione di metodo, se voglio dimostrare che classe ereditata avrà la precedenza esso, in l'altro caso omette semplicemente la dichiarazione.

Problemi correlati