Java从string实例化类

时间:2011-03-03 08:22:18

标签: java

我有以下内容,

public interface SuperbInterface
public class A implements SuperbInterface
public class B extends A
public class C extends B

我想实例化C,但我似乎得到B,我做错了什么?

Class classz = Class.forName("C");
SuperbInterface superb = (SuperbInterface)classz.newInstance();

//Here when I debug it seems to be going to B.doWork() methods instead of C.doWork().
superb.doWork();

4 个答案:

答案 0 :(得分:5)

我唯一能想到的是你没有在C中覆盖 doWork()

也许你已经尝试过覆盖但在方法名称或错误的参数中有一些拼写错误?

答案 1 :(得分:1)

假设您使用的是较新版本的Java,请将@Override添加到doWork方法中。如果您错误地覆盖了该方法,编译器会告诉您。

答案 2 :(得分:0)

您确定C会覆盖doWork方法吗?基于提出的问题,期望作为扩展B的一部分,C不为doWork提供自己的实现而是依赖于提供了超类B

答案 3 :(得分:0)

我看到了结果:

A做的工作

你想要的东西是什么?