我有两个扩展第三类的类,即
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();
}
有办法吗?
我不想为每个类的类创建变量,我只会在这个函数的整个生命周期中使用一个变量。
答案 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.