首页 > 解决方案 > 一个对象可以包含它的超类吗?

问题描述

例如(在 Java 中,但问题是关于每种 oo 语言):

    public class A { public int i;}

    public class B extends A { 
       private A a;
       B(A aa) { a = aa;}
    }

    public class C {
       public static void main(String[] args) {
           A a1 = new A();
           B b1 = new B(a1);
           B b2 = new B(b1);
       }
   }

正如我所看到的,它在 Java 中工作,但我不知道它是否真的被允许或应该避免。我需要它来制作 UML,而不是具体代码。

标签: javaoopinheritanceuml

解决方案


当然你可以这样做:

在此处输入图像描述

SubClass(B) 是SuperClass(A) 并且它还拥有类型为 的自有财产general(a;尽管在我的示例中它是公开的)SuperClass


推荐阅读