代码:
Object o = c.newInstance(paramValues);
Method[] ms = c.getDeclaredMethods();
ms[0].invoke(o,null);
这是教学上正确的代码,我想不通的是,O是一个object基类,他怎么能去掉用子类的方法呢?

解决方案 »

  1.   

    但我做了个实验:
    class A
    {
      public void msgA()
      {
        System.out.println("我是A类")
      }
    }class B extends A
    {
      public void msgB()
      {
        System.out.println("我是B类")
      }
    }class Test
    {
      public static void main(String args)
      {
        A test = new B();
        test.msgB();
      }}
    系统编译出错,说不能调用子类B的msgB方法,那用invoke()就无论什么方法都可以调用了?