帮助在另一个类中创建类

时间:2010-12-22 09:38:54

标签: java


         我有超类(A类),有许多子类(Class B,Class C,Class D)。我想在另一个类(类M)中创建任何这些子类的对象,以便我可以将对象添加到类M中的arraylist。

我想知道如何在M类中创建任何这些子类。我欢迎所有建议。

感谢。

4 个答案:

答案 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类的子类。