public class A{
public A(int num){ num += 2;}
}
public class B Extends A{
public B(int num){ super(num);}
}
public class C Extends B{
public C(int num){ super(num);}
}
像这样的 UML 类图会是什么样子?通常,如果只有一个类从另一个类继承,那么我会使用泛化。我该如何应对?如果有示例图就太好了。
最佳答案
- 在 UML 中,您不需要在子级中重复相同的构造函数。他们默认从 parent 那里得到它。不过,这不必在所有语言中都相同。因此,您在 Java 中拥有这些子构造函数,但无需在 UML 中显示它们。但你当然可以做到。
- A() 的主体毫无意义。您正在更改输入参数,这不会产生任何后果。我想,你的意思是:
public class A{
int num;
public A(int num){
this.num = num+2;
}
}
<小时/>
无论如何,这个变化在类图上是不可见的
一个类(class)甚至可以轻松拥有两个 child ,无论使用任何语言,都不是问题。对于几代泛化来说也是如此。在 UML 中,您甚至可以有一个 child 的两个 parent 。但只有少数语言支持这一点。 Java 不在他们的范围内。
关于java - 构造函数中带有 super 的 UML 类图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21949920/