Inheritance 绘制uml类图,在第三个类中调用超级类对象和子类对象

Inheritance 绘制uml类图,在第三个类中调用超级类对象和子类对象,inheritance,uml,associations,class-diagram,downcast,Inheritance,Uml,Associations,Class Diagram,Downcast,我有一个类a,它是类B的超类(即公共类B扩展了a)。现在我有了另一个类C,类a是类C中的一个实例变量,类B是从类a向下转换而来的,并分配给类C中的一个局部变量。我应该如何在uml类图中表示这种关系?类图很简单: C与A的关联是结构化的,因为存在该类型的实例变量 C的操作在局部变量中执行从实例变量到B的向下转换,这一事实不会改变类图:类图是关于结构的,而不是关于在执行一个或其他方法期间可能临时发生的事情。该语句的格式不正确。“类A是类C中的实例变量”这是否意味着类C具有类型A的非静态属性?“C类

我有一个类a,它是类B的超类(即
公共类B扩展了a
)。现在我有了另一个类C,类a是类C中的一个实例变量,类B是从类a向下转换而来的,并分配给类C中的一个局部变量。我应该如何在uml类图中表示这种关系?

类图很简单:

C与A的关联是结构化的,因为存在该类型的实例变量


C的操作在局部变量中执行从实例变量到B的向下转换,这一事实不会改变类图:类图是关于结构的,而不是关于在执行一个或其他方法期间可能临时发生的事情。

该语句的格式不正确。“类A是类C中的实例变量”这是否意味着类C具有类型A的非静态属性?“C类中的局部变量”是C类的属性还是C操作中的“实”局部变量/参数?“B类正在从A类降级”A类不能“降级”,该语句全局混淆类和类实例。无论如何,“B类从A类向下转换并分配给C类中的局部变量”这是一种行为,不能在类图中显示。谢谢你的回答,但让我困惑的是,既然B(从向下转换)被分配给C类中的局部变量,这是否意味着B和C有依赖关系?@Rui!在我的回答中,我不太愿意提及
«use»
依赖关系,因为这种依赖关系可能是一个不幸的实现细节,而不是设计意图。从理论上讲,可以设想一个不同的实现,例如,避免向下转换,或者将该部分提取到助手中。此外,虽然C的实现依赖于B,但类C本身并不依赖于B(即,您不需要在C.h中包含B.h,因为B既不用作参数也不用作返回值)。由于所有这些原因,我不会表现出依赖性。仅当设计需要或是实现模型时才显示它。