Class UML错误描述的对象语言?

Class UML错误描述的对象语言?,class,inheritance,casting,uml,programming-languages,Class,Inheritance,Casting,Uml,Programming Languages,我已经读到UML默认假定: 一个类可以继承其他几个类 对象只是一个类的实例 给定类的对象不能更改为其他类 这就引出了一个问题:因为有3个假设,所以有2^3个可能的组合。你能给我举几种语言的例子吗 我的意思是java是“假真”,C++是“真的真”。其他6个呢?还是我误解了这些假设?让我们看看OMG的UML2.5标准,以得到一个明确的答案: 1.类继承 UML 2.5标准明确定义了一个类可以没有或有几个超类,相反,一个类可以是没有或有几个类的超类(见第11.4.2节和第11.8.3.6节) 允许UM

我已经读到UML默认假定:

  • 一个类可以继承其他几个类
  • 对象只是一个类的实例
  • 给定类的对象不能更改为其他类
  • 这就引出了一个问题:因为有3个假设,所以有2^3个可能的组合。你能给我举几种语言的例子吗


    我的意思是java是“假真”,C++是“真的真”。其他6个呢?还是我误解了这些假设?

    让我们看看OMG的UML2.5标准,以得到一个明确的答案:

    1.类继承

    UML 2.5标准明确定义了一个类可以没有或有几个超类,相反,一个类可以是没有或有几个类的超类(见第11.4.2节和第11.8.3.6节)

    允许UML定义多重继承(如C++或Python)。但您也可以限制自己,只使用单个继承和几个接口实现,如Java和C#。您可以使用实现关系来显示抽象接口的“继承”(继承箭头用虚线标出)

    2。对象和类

    9.8.1:InstanceSpecification表示模型中分类器的实例 系统。它们通常用于建模的示例配置 实例

    仅供参考:标准中使用的术语更一般一些,但对象是实例和a类分类器。该定义在第9.8.3章的语义中进一步细化:

    InstanceSpecification可以表示:
    对 一个或多个分类器的实例,其中任何一个都可能是抽象的

    因此UML允许对象是几个类的实例化。我不知道允许这样做的语言,但如果你这样做,请毫不犹豫地发表评论;-)

    3。更改对象的类别

    我必须承认我不能百分之百地回答这个问题。我不这么认为,因为成为另一个类的实例意味着重新激活一个类,所以它不再对应于实例化的定义。
    此外(见9.8.3):

    InstanceSpecification可以表示某个时间点的实例 (快照)。对实例的更改可以使用多个 InstanceSpecification,每个快照一个

    这有点模棱两可:给定图中的给定对象不能更改类。但是,可以在不同的图(快照)中多次表示对象以显示更改

    结论


    所以你的假设1是真的,2是假的,3是真的还是假的,这取决于你是在图表还是模型层面上进行推理

    你在哪里读到的,为什么你认为这些都是假设?这是在法国一所大学的一次演讲中写的。你在这里不会得到例子(这是离题的)。UML本身就是一种语言。编程语言可以做他们想做的事情,并且完全不受UML所说的东西的约束。2和3在UML中是不正确的。我建议浏览一下这个编程语言列表,看看哪个适合:玩得开心!谢谢你,克里斯托弗,这是一个非常有趣的答案,这证明了原来的问题是不正确的。我将投票,但不会将答案标记为已接受,因为我正在寻找语言。吉姆的建议,rdfs,是一个好的开始。据我所知,你认为可能不存在(2)和(3)可以使用的那么多语言。