为什么输出全是小羊的叫声
来源:3-16 编程练习
慕仔0431810
2019-10-20 15:07:08
public class Test {
public static void main(String[] args) {
//生成父类对象数组,数组长度为5
Animal[] ani=new Animal[5];
//产生随机数,随机产生三种具体子类的实例
int n;
for(int i=0;i<ani.length;i++){
n=(int)(Math.random()*3);
switch(n){
case 0:ani[i]=new Cat();
case 1:ani[i]=new Dog();
case 2:ani[i]=new Sheep();
}
}
//循环输出,循环体中每个对象分别调用cry()方法。
for(int i=0;i<ani.length;i++){
ani[i].cry();
}
}
}
public class Animal {
//属性:kind(种类)
private String kind;
public Animal(){
}
//创建带参(king为参数)构造函数
public Animal(String kind){
this.setKind(kind);
}
//应用封装实现对私有属性的get/set操作
public String getKind(){
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
//创建成员方法cry():void
public void cry(){
}
}
public class Cat extends Animal {
//重写父类cry()方法,输出信息为“小猫的叫声:喵喵喵~~~”
public void cry(){
System.out.println("小猫的叫声:喵喵喵~~~");
}
}
public class Dog extends Animal {
//重写父类cry()方法:输出信息为“小狗的叫声:汪汪汪~~~”
public void cry(){
System.out.println("小狗的叫声:汪汪汪~~~");
}
}
public class Sheep extends Animal {
//重写父类的方法cry(),要求输出信息“小羊的叫声:咩咩咩~~~”
public void cry(){
System.out.println("小羊的叫声:咩咩咩~~~");
}
}
1回答
同学你好,因在switch结构中并没有结束语句,导致每一次的循环都运行case 2选项,所以每次输出都是小羊的叫声,建议同学在case 语句的后面添加结束语句(break)。修改后代码如下:
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题