一个示例:

    从示例中可以看出,对象层次结构的优点是不需要在不同对象类型之间进行转换。 但是,访问无效对象字段会引发异常。

    在示例中, 字段称为 鉴别字段 : 为安全起见,不能对其进行地址限制,并且对其赋值受到限制:新值不得导致活动对象分支发生变化。 此外,在对象构造期间指定特定分支的字段时,必须将相应的鉴别字段值指定为常量表达式。

    而不是更改活动对象分支,将内存中的旧对象完全替换为新对象:

    作为一项特殊规则,鉴别字段类型也可以使用 case 语句来限制。 如果 case 语句分支中的鉴别字段变量的可能值是所选对象分支的鉴别字段值的子集,则初始化被认为是有效的。 此分析仅适用于序数类型的不可变判别符,并忽略 elif 分支。

    A small 示例: