class Anmial
{
int height=100,weight;
void eat()
{
System.out.println("Anmial height:"+height);
System.out.println("Anmial eat!");
}
void sleep()
{
System.out.println("Anmial sleep!");
}
}class Fish extends Anmial
{
int height=200;
/* void eat()
{
//System.out.println("Fish height:"+height);
System.out.println("Fish eat!");
}*/
}class TestExtends
{
public static void main(String[] args)
{
Anmial an=new Anmial();
Fish fh=new Fish();
fh.height=300;
fh.eat();
}
}=========================
为什么结果中height不是等于300,变量不继承吗?

解决方案 »

  1.   

    记住一句话: 变量和static的方法没有多态    的说。。
      

  2.   


    写成这样就好了,你注释掉了.class   Anmial 

    int   height=100,weight; 
    void   eat() 

    System.out.println("Anmial   height:"+height); 
    System.out.println("Anmial   eat!"); 

    void   sleep() 

    System.out.println("Anmial   sleep!"); 

    } class   Fish   extends   Anmial 

    int   height=200; 
     void   eat() 

    System.out.println("Fish   height:"+height); 
    System.out.println("Fish   eat!"); 
    }
    } class   TestExtends 

    public   static   void   main(String[]   args) 

    Anmial   an=new   Anmial(); 
    Fish   fh=new   Fish(); 
    fh.height=300; 
    fh.eat(); 

    }
      

  3.   

    看来你是初学啊,给你绍一些视频资源,这里包含了视频,PPT课件,还有源代码,挺不错的,有时间多看看."快速掌握Java[孙鑫](视频+源码+PPT)"系列视频教程的下载!   全部共24个资源,教程包括视频,PPT课件,源代码,刚刚全部上传完毕,有兴趣的朋友可以下载.   免费下载!
    快速掌握Java[孙鑫](视频+源码+PPT)01  快速掌握Java[孙鑫](视频+源码+PPT)02快速掌握Java[孙鑫](视频+源码+PPT)03快速掌握Java[孙鑫](视频+源码+PPT)04
     
    快速掌握Java[孙鑫](视频+源码+PPT)05快速掌握Java[孙鑫](视频+源码+PPT)06快速掌握Java[孙鑫](视频+源码+PPT)07快速掌握Java[孙鑫](视频+源码+PPT)08快速掌握Java[孙鑫](视频+源码+PPT)09快速掌握Java[孙鑫](视频+源码+PPT)10快速掌握Java[孙鑫](视频+源码+PPT)11快速掌握Java[孙鑫](视频+源码+PPT)12快速掌握Java[孙鑫](视频+源码+PPT)13快速掌握Java[孙鑫](视频+源码+PPT)14快速掌握Java[孙鑫](视频+源码+PPT)15快速掌握Java[孙鑫](视频+源码+PPT)16快速掌握Java[孙鑫](视频+源码+PPT)17 快速掌握Java[孙鑫](视频+源码+PPT)18快速掌握Java[孙鑫](视频+源码+PPT)19快速掌握Java[孙鑫](视频+源码+PPT)20快速掌握Java[孙鑫](视频+源码+PPT)21快速掌握Java[孙鑫](视频+源码+PPT)22快速掌握Java[孙鑫](视频+源码+PPT)23快速掌握Java[孙鑫](视频+源码+PPT)24还需更多资源请访问:http://download.csdn.net/user/ZHOUJIAOSHOU
      

  4.   

    2楼...你那么一改就不是LZ想要的问题了
    class   Anmial 

    int   height=100,weight; 
    void   eat() 

    System.out.println("Anmial   height:"+height); 
    System.out.println("Anmial   eat!"); 

    void   sleep() 

    System.out.println("Anmial   sleep!"); 

    } class   Fish   extends   Anmial 

    //public int   height=200; //这里注释掉
    } public class   TestExtends 

    public   static   void   main(String[]   args) 

    Anmial   an=new   Anmial(); 
    Fish   fh=new   Fish(); 
    fh.height=300; 
    fh.eat(); 


    LZ,变量是可以继承的,但是你的代码是fish重写了height,而fh.eat(); 的eat()方法继承自Anmial,其操作的变量是Anmial里的变量,也就是说现在有两个height,分别属于fish和anmial,它们是不同的.
      

  5.   


    Fish fh = new Fish();
    fh.height = 300;
    fh.eat();调用的是父类的eat方法(因为子类没有) 改变的是子类对象的height属性
    Anmial fh = new Fish();
    fh.height = 300;
    fh.eat();
    变量无多态(父类方法中调用的就是父类的对象属性) 但改变的是父类对象的属性 因此输出300