应⽤继承和多态的思想,编写动物类,成员⽅法是动物叫声。写三个具体的类(猫、 狗、⽺),它们都是动物类的⼦类,并重写⽗类的成员⽅法。编写测试类,随机产⽣三 种具体动物,调⽤叫声这个⽅法。

一、任务分析

1.            定义⼀个⽗类Animal类

属性:kind(种类)

⽅法:创建带参(kind为参数)构造⽅法                             

           创建cry():void⽅法
2.            编写三个具体的⼦类Cat类、Dog类、Sheep类

分别重写⽗类中的    cry()    ⽅法,输出信息分别为

Cat类:⼩猫的叫声:喵喵喵~~~

Dog类:⼩狗的叫声:汪汪汪~~~

Sheep类:⼩⽺的叫声:咩咩咩~~~
3.            编写测试类,⾸先⽣成⻓度为5的⽗类对象数组,然后通过循环依次向数组中存⼊ 数据,现设定存储规则为:

a)            每次随机产⽣⼀个0~2的正整数

b)           若数值为    0,则⽣成⼀个    Cat    类的对象,存⼊数组

c)            若数值为    1,则⽣成⼀个    Dog    类的对象,存⼊数组

d)           若数值为    2,则⽣成⼀个    Sheep    类的对象,存⼊数组 最后循环输出数组成员,并分别调⽤    cry()    ⽅法。

二、实现代码

1.Animal.java

public class Animal {
private String king;

public Animal() {
    
}
public Animal(String king) {
    super();
    this.king = king;
}
public String getKing() {
    return king;
}
public void setKing(String king) {
    this.king = king;
}
public void cry() {
    
}
}

2.Cat.java

public class Cat extends Animal{
public void cry() {
    System.out.println("小猫的叫声:喵喵喵~~~");
}
}


3.Dog.java

public class Dog extends Animal{
public void cry() {
    System.out.println("小狗的叫声:汪汪汪~~~~");
}
}
4.Sheep.java

public class Sheep extends Animal {
public void cry() {
    System.out.println("小羊的叫声:咩咩咩");
}
}


5.Test3.java

public class Test3 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Animal[] temp = new Animal[5];

        // do-while只要符合while的条件do就会一直执行
        // 循环方案1
        for(int i=0;i<5;i++) {
            int j;
         do {
                 j = (int) (Math.random() * 3);
                System.out.print(j);
            } while (j>2&j<0);
         if (j == 0) {
                temp[i] = new Cat();
            } else if (j == 1) {
                temp[i] = new Dog();
            } else if (j == 2) {
                temp[i] = new Sheep();
            }
        }
        // 循环方案2
//        int i = 4;
//        while (i >= 0) {
//            int j = (int) (Math.random() * 3);
//            if (j == 0) {
//                temp[i] = new Cat();
//            } else if (j == 1) {
//                temp[i] = new Dog();
//            } else if (j == 2) {
//                temp[i] = new Sheep();
//            }
//            i--;
//            System.out.println(j + " ");
//
//        }

        for (int a = 0; a < 5; a++) {
            System.out.println(temp[a]);
            temp[a].cry();
        }

    }

}


6.运行图片

发布了90 篇原创文章 · 获赞 50 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/qq_40307919/article/details/104298700