如class a(){
            public void f(){....}
           }
class b extends a{
            ........}
     class d extends b{
                 ........
            }问题是通过d这个类去访问a中的方法f();请各位大哥指教下                                  

解决方案 »

  1.   

    在d类中使用反射实例化一个a类的对象,调用它的方法
    import java.lang.reflect.Constructor;public class d { public static void main(String[] args)throws Exception {
      
       Class c = Class.forName("a");
       Object o=a.newInstance();//这是创建构造方法
       Method[] methods=c.getMethods();
       for(Method m:methods)
    {
        if(m.getName().equals("f"))
    {
        m.invoke(o);
    }
    }
     }}
      

  2.   

    a<-b<-d
    继承关系
    可以通过d的实例来访问f()
      

  3.   

    在a类中,改方法是public。所以其子类都可以对改方法进行直接的调用。
      

  4.   


    你可以把
    public void f(){....}
               }
    改为
    public static void f(){....}
               }
    这时i就方便了。使用a.f()就可以访问了