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
No, non c'è. Puoi solo dire che un metodo viene sovrascritto controllando i metodi della classe da cui è ereditato.
Anche se non specificato nella norma UML, che segue è una notazione intesa per indicare quando una funzione sovrascrive l'altro:
+ toString() : String <<override>>
Si noti che <
I profili sono definiti nello standard UML o questa sarebbe una caratteristica del software di diagrammi? @granier – ThisClark
duplico dichiarazione di metodo, se voglio dimostrare che classe ereditata avrà la precedenza esso, in l'altro caso omette semplicemente la dichiarazione.
Grazie. Immagino tu intenda "sovrascritto", non "sovrascritto". –
Sì. Questo è Denglish ;-) –
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