Существует ли соглашение для отображения переопределенных методов в диаграммах статического класса UML?

Если класс Human наследует некоторые методы из суперкласса Mammal без изменений (например, laysEggs: () -> false) и переопределяет другие методы (например, postsToStackOverflow : () -> true), существует ли какая-либо разница между тем, как различные методы указаны в части диаграмму статического класса UML для Human? Например, это только переопределенные методы, показанные в поле для Human, или оба показаны с некоторой аннотацией для переопределенных методов?

Ответ 1

Сейчас есть. Какой-то аноним заставил меня покопаться в 2.5.1. функции. На стр. 102 сказано

Члены, которые наследуются классификатором, могут быть показаны на диаграмме этого классификатора путем добавления символа вставки ^ к текстовому представлению, которое будет отображаться, если член не был унаследован. Таким образом, запись для унаследованного свойства определяется следующим образом:

<inherited-property> ::= ^ <property>

Сама спецификация (пока) не использует в значительной степени обозначения каретки, за исключением рисунка 9.11 на с. 115 и рисунок 10.9 на с. 173.


В спецификации для 2.5 и до того ответ был: нет, нет. Вы можете только сказать, что метод переопределен, проверяя методы класса, от которого наследуется.

Ответ 2

Хотя это не указано в стандарте UML, следующая - это обозначение, обозначающее, когда одна функция переопределяет другую:

+ toString() : String <<override>>

Ответ 3

Я повторяю объявление метода, если я хочу показать, что унаследованный класс переопределит его, в другом случае просто пропустите объявление.