是否可以使用不同对象类的构造函数?想象一下两个类:A和B扩展A.我们创建对象
A x = new B(arg);
然后(伪代码!)
A y = new (x.getClass())(arg);
我是否可以在没有通过所有可能的A继承人的情况下获得此效果?
答案 0 :(得分:2)
反思可能就是你想要的,但仍然不鼓励:
A y = x.getClass().getConstructor(ArgType.class).newInstance(args);
将创建B
。
答案 1 :(得分:0)
如果一个对象继承了另一个对象,则可以对该对象进行类型转换。请查看此链接以获取更多信息:Casting objects in Java