Java 对象可以包含其超类吗?
例如(在Java中,但问题是关于每种oo语言): 正如我看到的,它在Java中工作,但我不知道它是否真的被允许或应该被避免。我需要它来制作UML,而不是具体的代码。当然可以:Java 对象可以包含其超类吗?,java,oop,inheritance,uml,Java,Oop,Inheritance,Uml,例如(在Java中,但问题是关于每种oo语言): 正如我看到的,它在Java中工作,但我不知道它是否真的被允许或应该被避免。我需要它来制作UML,而不是具体的代码。当然可以: 子类(B)是一个超类(a),它还拥有一个通用(a;尽管在我的示例中它是公共的)类型为超类是的,它可以。这是否是一个好主意取决于您实际在做什么。例如,FilterInputStream,它扩展了InputStream,有一个字段引用另一个InputStream。为什么不允许并接受它。有时无法避免。例如,考虑一个必须从语句<
子类
(B)是一个超类
(a),它还拥有一个通用
(a;尽管在我的示例中它是公共的)类型为超类
是的,它可以。这是否是一个好主意取决于您实际在做什么。例如,FilterInputStream
,它扩展了InputStream
,有一个字段引用另一个InputStream
。为什么不允许并接受它。有时无法避免。例如,考虑一个必须从<代码>语句< /代码>继承并包含两个<代码>语句< /代码>对象的代码:<代码> IF>代码>对象。不总是直接的,但仍然。。。。如果它的子类不允许有包含其他对象的字段,那就太无聊了。。。只是想
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);
}
}