如果你想要结果是 4,   class2, 那么把你的class2安下面修改。 classes2 的 METHOD要override super class 的 method 才可以。如果只是直接调用class1的method, 那么在运行的print的时候x的赋值当然是1。class class2 extends class1{
 int x=4;
          void print()
{
System.out.println(x+"        "+this.getClass().getName());
}

}

解决方案 »

  1.   

    把class2 和class1放到不同的包也可以得到你想要的结果
      

  2.   

    同意yesemiman(未央) 的
    我运行过的,很对!
      

  3.   

    public static void main(String[] args) 
    {
    class2 myclass=new class2();
    myclass.print();
    }oo問題,
    由于你在class2中沒有構造函數,所以執行class2 myclass=new class2();
    的時候什么都不會做!當然沒有x=4之說!那么myclass.print()的x就等于1咯!
      

  4.   

    由于你在class2中沒有構造函數,所以執行class2 myclass=new class2();
    的時候什么都不會做!當然沒有x=4之說这句话不对。myclass.x是等于4的。