UML图如何画超级构造器传递参数

How to draw UML diagrams passing parameters through super constructor

我有一个名为 A 的 superclass 和一个继承自 A 的名为 B 的 subclass。superclass 的构造函数如下所示:

A(String name, char displayChar, int hitPoints, Behaviour behaviour) 

{
 this.name = name;
 this.displayChar = displayChar;
 this.hitPoints = hitPoints
 addBehaviour(behaviour);
}

A 具有 name、displayChar、hitPoints、behavior 等属性,并且具有调用 addBehaviour 的方法,该方法将行为添加到对象。

子class,B的构造函数是这样的:

B(String name) {super(name, char 'b', 10, new WalkBehaviour()); }

现在我的问题是,subclass B 是否具有 WalkBehaviour 属性?

对于这种情况,UML 图会是什么样子?我知道 B 继承自 A 并且 A 具有 Behavior 但在这种情况下 B 具有 WalkBehaviour 吗?由于 B 在其 class 中没有 WalkBehaviour 类型的实例变量,而是仅通过其超级class 的构造函数传递 WalkBehaviour。

does subclass B have an attribute of WalkBehaviour?

没有。有 none 声明。 superclass 将对该新对象做一些事情,但显然它隐藏在其实现的迷雾中。

继承与创建多个对象无关。您的 B 实例只是一个具有属性和操作的实例 就像 它的超级 class。

因此,在 SD 中,您只会看到 B 的一条生命线:

如您所见,B 实例将向超级 class 的构造函数发出自我调用。

注意:正如@AxelScheithauer 在评论中指出的那样,超级 class 将调用 addBehavior,它可以(但不能)显示在 SD 中: