老师请帮我看下我的代码符合要求吗?
package com.mason.pc316;
import java.util.Random;
public class Test {
public static void main(String[] args) {
// 生成父类对象数组,数组长度为5
Animal[] animal = new Animal[5];
// 产生随机数,随机产生三种具体子类的实例
Random r = new Random();
int sj;
for (int i = 0; i < animal.length; i++) {
sj = r.nextInt(3);
switch (sj) {
case 0:
animal[i] = new Cat("小猫");
break;
case 1:
animal[i] = new Dog("小狗");
break;
case 2:
animal[i] = new Sheep("小羊");
break;
default:
break;
}
}
// 循环输出,循环体中每个对象分别调用cry()方法。
for (int i = 0; i < animal.length; i++) {
animal[i].cry();
}
}
}
package com.mason.pc316;
public class Animal {
// 属性:kind(种类)
private String kind;
public Animal() {
}
// 创建带参(kind为参数)构造函数
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() {
}
}
package com.mason.pc316;
public class Cat extends Animal {
public Cat() {
}
public Cat(String kind) {
this.setKind(kind);
}
//重写父类cry()方法,输出信息为“小猫的叫声:喵喵喵~~~”
@Override
public void cry() {
System.out.println(this.getKind()+"的叫声:喵喵喵~~~");
}
}
package com.mason.pc316;
public class Dog extends Animal {
public Dog() {
}
public Dog(String kind) {
this.setKind(kind);
}
// 重写父类cry()方法:输出信息为“小狗的叫声:汪汪汪~~~”
@Override
public void cry() {
System.out.println(this.getKind() + "的叫声:汪汪汪~~~");
}
}
package com.mason.pc316;
public class Sheep extends Animal {
public Sheep() {
}
public Sheep(String kind) {
this.setKind(kind);
}
// 重写父类的方法cry(),要求输出信息“小羊的叫声:咩咩咩~~~”
@Override
public void cry() {
System.out.println(this.getKind() + "的叫声:咩咩咩~~~");
}
}
请老师帮我看下,我的代码符合3-16的编程练习要求吗?或者还有什么需要改进的地方?谢谢老师!
0
收起
正在回答
2回答
嗯嗯,没问题。祝:学习愉快
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程



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