public class Animal
{
private int legs;
private String kind;
public Animal()
{
setLegs(4);
}
public Animal(int l)
{
setLegs(l);
}
public void eat()
{
System.out.println("Eating");
}
public void move()
{
System.out.println("Moving");
}
public void setLegs(int l)
{
if (l != 0 && l != 2 && l != 4)
{
System.out.println("Wrong number of legs!");
return;
}
legs=l;
}
public int getLegs()
{
return legs;
} public void setKind(String str)
{
kind=str;
}
public String getKind()
{
return kind;
}
}//Animal.java
public class Fish extends Animal
{
public Fish()
{
setLegs(0);
setKind("Fish");
}
}//fish.java
public class Zoo
{
public static void main(String argv[])
{
Fish fish = new Fish();
System.out.println(fish.getKind()+" has "+ fish.getLegs()+" legs.");
}
}//Zoo.java
其中Fish类继承了Animal类,随便修改Fish类中的SetLegs(int i)方法的i的值,除了i=0,2,4外,其他值为什么返回的结果都是
"Fish has 4 legs."因为是初学者自学,希望能够认真详细的解答。
{
private int legs;
private String kind;
public Animal()
{
setLegs(4);
}
public Animal(int l)
{
setLegs(l);
}
public void eat()
{
System.out.println("Eating");
}
public void move()
{
System.out.println("Moving");
}
public void setLegs(int l)
{
if (l != 0 && l != 2 && l != 4)
{
System.out.println("Wrong number of legs!");
return;
}
legs=l;
}
public int getLegs()
{
return legs;
} public void setKind(String str)
{
kind=str;
}
public String getKind()
{
return kind;
}
}//Animal.java
public class Fish extends Animal
{
public Fish()
{
setLegs(0);
setKind("Fish");
}
}//fish.java
public class Zoo
{
public static void main(String argv[])
{
Fish fish = new Fish();
System.out.println(fish.getKind()+" has "+ fish.getLegs()+" legs.");
}
}//Zoo.java
其中Fish类继承了Animal类,随便修改Fish类中的SetLegs(int i)方法的i的值,除了i=0,2,4外,其他值为什么返回的结果都是
"Fish has 4 legs."因为是初学者自学,希望能够认真详细的解答。
解决方案 »
- 在linux里面的crontab运行一个java程序,java里面system.out.print输出到哪里去了
- lucene删除索引时出现两个cfs文件,数据也没有删除
- string查找符号字符? 就是查找内容用unicode表示?
- 一个JAVA的小问题,急!急!请高手帮忙
- 为什么把一个带有中文的字符串输入到一个File中,中文不能正常显示呢,都是乱码.
- 讨论一下java里的垃圾回收算法
- 关于怎么使用外来的库
- 请教:怎样将数据库中的数据项和字段添加到文本文件的指定位置?
- 求救:如何将通过socket将 一个String和<CRLF>.<CRLF> 一起传给服务器端
- 基于Netty 聊天室【Netty5.0 protobuf2.5】
- 为什么package explorer下的工程 的很多文件(夹)图标的左下方都有个小红叉,怎么解决
- 从Exlipse转到JCreator找不到类文件
{
setLegs(4);
}默认设置为4
当Fish fish = new Fish();
会首先默认调用 父类构造函数
也就是
public Animal()
{
setLegs(4);
}
{
super(xxx);
setKind("Fish");
}
fish中的getleg()和setlegs()是继承的父类的 所以他取得legs值为父类中legs的值 legs是私有的子类不能用它
你将legs声明为public
如果在父类中写了有参的构造器,此时在子类的构造器中必须显示的调用父类的有参构造器super(参数)。
他听父类的 你想通过fish改legs值 得在fish重重定义