率哥,你要调用的是Mankind中的方法dx(),它又不是在test中,而且这里好象和继承没什么关系吧
Mankind m=new Mankind();
m.dx();

解决方案 »

  1.   

    如果你把这两个类放在同一个文件里,Mankind就是默认的package权限的,在Test类里就可以直接调用dx(),但不能m.dx(),因为dx(不是Test类对象里的,你必须先创建一个Mankind类对象,比如a,这样调用a.dx().
      

  2.   

    Mankind默认是受保护的类。同一个包中的子类可调用它的方法。Test不是它的子类,所以必须实例化Mankind来调用dx()方法。我测试过能行。但不知是不是楼主问这问题的本意。
      

  3.   

    Mankind m=new Mankind();
    m.dx();
    或者在类Mankind中把dx定义为静态的如:
    static void dx(){
      System.out.println("ok");
    }
    然后在Test类中如此调用:
    Mankind.dx();
      

  4.   

    m.dx()这样也行?dx()是Mankind类中的方法,Test类和Mankind类之间又不存在继承关系,默认访问权限的dx()不能被Mankind类访问.因为它们根本就没关系.楼主搞清楚JAVA中的继承就没问题了.
      

  5.   

    这就是面向对象:你不能随便访问Mankind中的成员,只有通过建立一个Mankind的实例才能访问其中的成员。
    唯一的例外情况是把dx()前加一个static,使dx()成为一个类成员。
    类成员与普通成员的区别是:它们只在建立第一个对象时被初始化,以后就不会再初始化了;而普通成员在每一个新对象建立时,都要初始化。
    所以,你可以用类名直接引用类成员:Mankind.dx()。但是,绝对不能用m.dx()。