初学java一题,请教!
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,变量不继承吗?
------解决方案--------------------记住一句话: 变量和static的方法没有多态 的说。。
------解决方案--------------------[code=Java][/code]
写成这样就好了,你注释掉了.
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();
}
}
------解决方案--------------------2楼...你那么一改就不是LZ想要的问题了
Java code
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();
}
}
------解决方案--------------------
Java code
Fish fh = new Fish();
fh.height = 300;
fh.eat();
------解决方案--------------------
LZ 怎么说不是300呢?结果本来就是300,至于解释见上面的
------解决方案--------------------
我运行的结果是100,不是300,所以我就不明白为什么不是300!