3

假设我有以下课程:

public class ParentClass{}

它的子类之一是:

public class ChildClass extends ParentClass{}

让我们考虑另一个类:

public class Foo{
    
    private ParentClass field;
    
    public Foo(){
        
        field = new ChildClass();
        
    }
    
    public static void main(String[] args){
        
        Foo foo = new Foo();
        
    }
    
}

绘制对象图时foo我不知道是否必须写ChildClass

在此处输入图像描述

或者ParentClass

在此处输入图像描述

4

1 回答 1

3

在您的程序字段中是ChildClass的一个实例,对象图的目标是显示实例及其有效类型(以及它们的属性值,如果它们有)=>要使用的正确图表是

在此处输入图像描述


[从评论编辑到我的回答]

使用第二张图也是合法的,但它隐藏了实例肯定ChildClass的实例的事实,因此最好使用第一张图来表明这一点。

我忘了在你的两个图表中提到两个实例之间的线不对应于它们之间的单独关联,第一个图表的正确方法是:

在此处输入图像描述

考虑到您的Foo实例是通过名为foo的变量保存的,将foo命名为您的Foo实例似乎是合理的

于 2020-11-24T22:17:40.367 回答