应用继承和多态的思想,编写动物类,成员方法是动物叫声。写三个具体的类(猫、狗、羊),它们都是动物类的子类,并重写父类的成员方法。编写测试类,随机产生三种具体动物,调用叫声这个方法。
程序参考运行效果如图所示:

任务
任务分析:
1. 定义一个父类Animal类
属性:kind(种类)
方法:创建带参(kind为参数)构造方法
创建cry():void方法
2. 编写三个具体的子类Cat类、Dog类、Sheep类
分别重写父类中的 cry() 方法,输出信息分别为
Cat类:小猫的叫声:喵喵喵
Sheep类:小羊的叫声:咩咩咩~
3. 编写测试类,首先生成长度为5的父类对象数组,然后通过循环依次向数组中存入数据,现设定存储规则为:
a) 每次随机产生一个0~2的正整数
b) 若数值为 0,则生成一个 Cat 类的对象,存入数组
c) 若数值为 1,则生成一个 Dog 类的对象,存入数组
d) 若数值为 2,则生成一个 Sheep 类的对象,存入数组
最后循环输出数组成员,并分别调用 cry() 方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package me.feihong.catdog;
public class Cat extends Animal{ public Cat() { }
public Cat(String kind) { super(kind); }
@Override public void cry() { System.out.println(getKind()+"小猫的叫声:喵喵喵~~~"); }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package me.feihong.catdog;
public class Dog extends Animal{ public Dog() { }
public Dog(String kind) { super(kind); }
@Override public void cry() { System.out.println(getKind()+"小狗的叫声:汪汪汪~~~"); }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package me.feihong.catdog;
public class sheep extends Animal{ public sheep() { }
public sheep(String kind) { super(kind); }
@Override public void cry() { System.out.println(getKind()+"小羊的叫声:咩咩咩~~~"); }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| package me.feihong.catdog;
public class Animal { private String kind;
public Animal() { }
public Animal(String kind) { this.setKind(kind); }
public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; }
public void cry() { System.out.println("动物会叫~~~"); }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| package me.feihong.test;
import me.feihong.catdog.*;
public class Test {
public static void main(String[] args) { Animal animal[]=new Animal[5]; for(int i=0;i<5;i++) { int temp=(int)(Math.random()*3); if(temp==0) { animal[i]=new Cat("Cat类:"); }else if(temp==1) { animal[i]=new Dog("Dog类:"); }else if(temp==2){ animal[i]=new sheep("Sheep类:"); } }
for(int i=0;i<3;i++) { animal[i].cry(); }
}
}
|