Java从子类调用超类的类构造函数

时间:2013-01-28 16:28:39

标签: java reflection constructor invoke

我正在尝试使用反射调用继承类的参数化构造函数。 但构造函数不是在子类中实现的,只在超类中实现。

class Parent{       
    public Parent(String value){
        doSomeThing(value);
    }
}

class Horst extends Parent{}

class Eva extends Parent{}

class AndereKlasse{       
    ...
    Class parentClass = MyConfig.getParentClass; // its here Horst.class or Eva.class
    Constructor parentConstructor =   Parent.class.getConstructor(String.class);
    parentConstructor.newInstance("just a String");
    ...
}

我只从子类中获取空构造函数,但不从Parent-class中获取。有解决方法吗?

1 个答案:

答案 0 :(得分:1)

这不起作用,因为子类Eva和Horst都必须定义自己的构造函数,以指定它们如何调用它们的超类构造函数。在任何情况下,调用超类的构造函数都不会创建子类的对象。您需要在子类上调用构造函数,以便创建该子类的对象。