class FatherClass
{
public FatherClass()
   {
   void m();  
   }
   
   void m()
   {     
   System.out.println("FatherClass");
   }
}
public class ChildClass extends FatherClass
{
   public ChildClass()
   { 
      m();
      super.m();
    }  void m()
   {   
      System.out.println("ChildClass");
    }    public static void main(String[] args)
    {
       FatherClass f = new ChildClass();
       ChildClass  c = new ChildClass();
     }
}
运行结果和详细的执行过程,搞java,这东西一定要弄明白的,谢谢指点.

解决方案 »

  1.   

    你自己debug一下不就清楚了吗?
      

  2.   

    FatherClass
    ChildClass
    ChildClass
    FatherClass
    FatherClass构造函数不要void
      

  3.   

    这个不对吧,你自己运行下,是ChildClass
    ChildClass
    FatherClass
    ChildClass
    ChildClass
    FatherClass
      

  4.   

    在对象内部之所以能调用非静态的方法,是因为存在一个this的引用
    看下JNI就知道调用非静态方法都要传入一个对象引用 印象中是第一个参数
    FatherClass f = new ChildClass();
    这样在初始化父类的时候 得到的this类型是子类 所以自然就会调用子类的方法
    如果想他调用自己的方法 就加上静态修饰