如何动态选择一个类?

时间:2013-07-04 10:55:29

标签: java class dynamic

我有两个扩展第三类的类,即

public class class_a extends parent_class

public class class_b extends parent_class

我的问题是有可能让第三个类根据条件创建对类的引用吗?即

public void test() {
  parent_class b;
  if (cond)
    b = new class_a();
  else
    b = new class_b();
}

有办法吗?

我不想为每个类的类创建变量,我只会在这个函数的整个生命周期中使用一个变量。

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

是。 Polymorphism允许威胁子类作为基类。 因此,您可以使用parent_class返回值类型编写方法,如下所示:

parent_class create(boolean condition)
{
   return condition ? new class_a() : new class_b();      
}

正如@John回答的那样,它被称为工厂方法。

P.S。在Java中,最好使用CamelCase命名类,如ClassA和ParentClass。 Code style.