我有超类(A类),有许多子类(Class B,Class C,Class D)。我想在另一个类(类M)中创建任何这些子类的对象,以便我可以将对象添加到类M中的arraylist。
我想知道如何在M类中创建任何这些子类。我欢迎所有建议。
感谢。
答案 0 :(得分:2)
最好的方法是使用工厂设计模式。
更新#1
检查这些链接
答案 1 :(得分:2)
我不知道你是在寻找一个构造模式还是一个实例化内部类的方法。如果您的问题与如何实例化内部类有关,请提示:
public class A {
public static class B {}
public class C {}
}
class M {{
A.B b = new A.B();
A a = new A();
A.C c = a.new C();
}}
因此,对于静态内部类,您可以使用常规“new”创建实例,
但对于非静态内部类,您必须创建周围类的第一个实例,然后在此实例上为内部类调用new:
A a = new A();
A.C c = a.new C();
答案 2 :(得分:1)
public A createObject(int i) {
A result = null;
switch(i) {
case 1:
result = new B();
break;
case 2:
result = new C();
break;
}
return A;
}
答案 3 :(得分:0)
您始终在其他对象中创建对象。在Java中没有别的办法。工厂是最好的方法。如果你想让事情变得更简单,你可以这样做:
ArrayList<A> l = new ArrayList<A>();
l.add(new B());
l.add(new C());
因为B和C是A类的子类。