Пример следующий:
----------- --------------------
| X | 1..1 0..1 | <<abstract>> |
| |<>------------| Y |
|-----------| |--------------------|
| +a:bool | | +b:positiveInteger |
'-----------' '--------------------'
В реальном мире абстрактный Y может быть конкретным A, B или C в соответствии со следующими правилами:
- когда
a
равноtrue
, Y является классом A; - когда
a
равноfalse
иb == 1
, Y относится к классу B; - когда
a
равноfalse
иb > 1
, Y - это класс C.
Как бы вы смоделировали эти правила наследования на диаграмме классов UML?