uml - 如何绘制通过 super 构造函数传递参数的UML图

标签 uml

我有一个名为 A 的父类(super class)和一个继承自 A 的名为 B 的子类。父类(super class)的构造函数如下所示:

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

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

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

子类B的构造函数如下所示:

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

现在我的问题是,子类B是否有WalkBehaviour的属性?

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

最佳答案

does subclass B have an attribute of WalkBehaviour?

没有。没有任何声明。父类(super class)将对这个新对象执行一些操作,但显然它隐藏在其实现的迷雾中。

继承并不涉及多个对象的创建。您的 B 实例只是一个单独的实例,它具有与其父类(super class)一样的属性和操作。

enter image description here

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

enter image description here

如您所见,B 实例只会向父类(super class)的构造函数发出自调用。

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

enter image description here

关于uml - 如何绘制通过 super 构造函数传递参数的UML图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55718538/

相关文章:

uml - 如何将 Rational Rose 设计保存到图像文件中

algorithm - UML 工具的代码生成功能背后的技术是什么

uml - 在领域模型中使用多重继承是否可以接受?

uml - 画出类似UML的图表来表示数学算法

Android类图

mysql - 将泛化转换为 mysql 方案

uml - 您使用哪种UML图?

uml - CRC(Class responsibility collaborator)和UML

uml - 在线工作门户系统用例图

uml - 在用例图中显示条件