可以从没有子类名的父类实例化子对象。
例如,我有下一节课:
public class A {
protected int a;
public A1() {
a = 0;
}
public int getA() {
return a;
}
public static A getObject() {
// some code which I need to write
}
}
public class A1 extends A {
public A1() {
a = 5;
}
}
public class A2 extends A {
public A2() {
a = 10;
}
}
使用示例:
A a = A1.getObject();
a.getA(); // return 5
a = A2.getObject();
a.getA(); // return 10
a = A.getObject();
a.getA(); // return 0
A1、A2 并不是所有的子类。可能有无限数量。
我如何编写 getObject() 方法来创建 A 类子实例。
PS:
我只需要初始化子类对象,但是有大量子类,我不会为所有子类调用“new”,也不会编写静态方法来初始化它,而且所有子类都有相同的构造函数。我无法从父级创建子实例是很大的缺陷。