循环调用
public class Test {
public static void main(String[] args) {
Animal animal[]=new Animal[5];
for(int i=0; i< animal.length; i++) {
int n = (int)(Math.random() *3);
switch (n) {
case 0:
animal[i]=new Cat();
break;
case 1:
animal[i]=new Dog();
break;
case 2:
animal[i]=new Sheep();
break;
}
for(Animal n=animal){
switch (n) {
case 0:
Cat.cry();
break;
case 1:
Dog.cry();
break;
case 2:
Sheep.Cry();
break;
}
}
}
public class Animal {
private String kind;
public Animal(){
}
public Animal(String kind){
this.setKind(kind);
}
public void setKind(String kind){
this.kind=kind;
}
public String getKind(){
return kind;
}
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("小羊的叫声:咩咩咩~~~");
}
}
这是哪里的问题呢
6
收起
正在回答
1回答
同学你好,1、Test类中第一个循环没有成功闭合,建议同学添加对应的花括号(})

2、第二个循环中出现多个语法错误问题。具体如下所示:

在第二个循环中直接调用cry()方法就可以了。修改后代码如下所示:

3、优化代码,调用cry方法在一个循环就实现,不需要定义第二个循环。

祝学习愉快!
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程
这个n不是随机产生012中的一个数吗,怎么能直接用这个数字调用cry方法呢

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星