2

您如何在序列图中表示 super() 调用?我创建了一个类“Bar”,它是“Foo”的子类。在创建此类 Bar 时,会调用 Foo 的默认构造函数。你如何在序列图中绘制它?

4

1 回答 1

0

超调用表示对超类的某些方法的调用,因此如果类 A 从类 B 扩展,则:

class A extends B{
    public A (){
        super();
    }
}

class B {
    public B (){
        ...
    }
}

您必须在运行时考虑这些类,例如,您有一个来自类 A 的对象 a,称为 a,该对象由两个类表示,因为 A 类扩展了 B 类。

在这种情况下,我会用超类 B 的构造函数做一个图,所以我可以将此图链接到我代表类 A 的构造函数的图。

由于对超类构造函数的调用引用的是同一个对象而不是另一个对象,因此消息箭头应该是一条自身消息,其中它调用了超类 B 的构造函数。

此外,为了让事情更清楚,我会添加超级调用的代码。

更图形化的应该是这个。

A类序列图

对于 B 类

B类序列图

PD。我使用 Enterprise Architect 软件来绘制图表。

于 2013-10-17T19:07:15.167 回答