帮我写一道java编程题:有几种动物名词,啮齿动物(Rodent),老鼠(Mouse),鼹鼠(Gerbil),金黄大颊鼠(Hamster),自行搜索相关知识,建立类的层次结构,其中层次中的类至少有一个为抽象类。 已知内容包括: 1. 啮齿动物的主要习性有:寻找食物(findFood),吃食物(chewFood),不同的啮齿动物要找的食物不同,吃不同食物的方法也不同。 2. 对于不同的啮齿动物,都需要重写两种习性方法,以表明不同啮齿动物的不同行为习性。其中,寻找食物方法返回找到的食物名称,吃食物方法显示内容为:动物名+”吃“+找到的食物名 3. 在主方法中创建一个啮齿动物数组,建立不同种类的啮齿动物,让每个动物吃它们找到的食物
时间: 2023-06-09 09:06:15 浏览: 153
我很乐意帮你解决这个问题!下面是一份满足你要求的Java编程题答案:
首先,我们需要建立类的层次结构,其中包括一个抽象的“啮齿动物”类和三个具体的类:“老鼠”,“鼹鼠”和“金黄大颊鼠”。类的层次结构如下所示:
```
abstract class Rodent{
abstract String findFood();
abstract void chewFood(String food);
}
class Mouse extends Rodent{
String findFood(){
return "cheese";
}
void chewFood(String food){
System.out.println("Mouse eats " + food);
}
}
class Gerbil extends Rodent{
String findFood(){
return "seeds";
}
void chewFood(String food){
System.out.println("Gerbil eats " + food);
}
}
class Hamster extends Rodent{
String findFood(){
return "carrots";
}
void chewFood(String food){
System.out.println("Hamster eats " + food);
}
}
```
在“啮齿动物”类中,我们声明了两种抽象方法“findFood”和“chewFood”,并在每个具体类中重写了这两种方法以适应不同的行为习惯。在“Mouse”类中,我们实现了“findFood”方法,使老鼠喜欢吃奶酪;在“Gerbil”类中,我们实现了“findFood”方法,使鼹鼠喜欢吃种子;在“Hamster”类中,我们实现了“findFood”方法,使金黄大颊鼠喜欢吃胡萝卜。这样,我们可以通过调用每个对象的“findFood”方法来查找它们喜欢的食物。
接下来,我们需要重写“chewFood”方法,以保存每个动物吃到的特定食物。在每个具体类中,我们都输出了“动物名 + ‘吃’ + 找到的食物名”的消息,以反映每个动物的行为习性。
最后,我们只需要在主方法中创建一个“Rodent”数组,用不同的具体类实例填充它,并使用“findFood”和“chewFood”方法来模拟它们的行为。完整的代码如下所示:
```
public static void main(String[] args) {
Rodent[] rodents = new Rodent[3];
rodents[0] = new Mouse();
rodents[1] = new Gerbil();
rodents[2] = new Hamster();
for(Rodent rodent : rodents){
String food = rodent.findFood();
System.out.println("Found " + food + ".");
rodent.chewFood(food);
}
}
```
当我们运行这段代码时,它会输出:
```
Found cheese.
Mouse eats cheese
Found seeds.
Gerbil eats seeds
Found carrots.
Hamster eats carrots
```
这表示每个动物都找到了它们喜欢的食物,并吃了它们。这就是按要求解决这个 Java 编程问题的全部过程。希望这对你有所帮助!
阅读全文