2.下面程序模拟了饲养两只宠物的内容,补充完整程序代码,并回答问题。
// 所有宠物的父类
class Pet {
// 补充定义宠物属性,至少包括宠物的名字、宠物的食物偏好索引号、宠物的食
// 量,三个成员变量。成员变量访问权限必须定义为私有权限
// 初始化默认的宠物实例对象
public Pet() {
Name = "MyPet";
AmountNeedEat = 1;
FavoriteIndex = 1;
}
// 补充定义根据输入参数,初始化宠物的实例对象
public Pet(String Name, int FavoriteIndex, int AmountNeedEat) {
}
// 补充定义返回宠物偏好的食物索引号
public int getFavoriteIndex() {
}
// 补充定义返回宠物的名字
public String toString() {
}
// 补充定义宠物进食。投喂的食物符合偏好,就吃,且饱食度减一,返回已进食;
// 投喂不符合偏好,或饱食度为零时,拒食,返回未进食
public boolean eat(int foodindex) {
}
// 补充定义宠物饥饿判断。饱食度为零返回不饿,否则返回饿
// 宠物根据自己的状态可以干点什么了。
public String doSomething() { return "doSomething";}
}
// 宠物狗类
class Dog extends Pet {
// 补充定义需要的成员变量。成员变量的访问权限必须定义为私有权限
// 根据输入参数,初始化狗的实例对象
public Dog(String Name, int AmountNeedEat, int FavoriteIndex) {
}
// 补充定义宠物狗的干事方法。如果没吃饱,返回still want to eat more food.
// 如果吃饱了,返回Let’s go outside for a wallow.
public String doSomething() {
}
}
// 宠物猫类
class Cat extends Pet {
// 补充定义需要的成员变量。成员变量的访问权限必须定义为私有权限
// 补充定义根据输入参数,初始化猫的实例对象
public Cat(String Name, int AmountNeedEat, int FavoriteIndex) {
}
// 补充定义宠物猫的干事方法。如果没吃饱,返回still want to eat more food.
// 如果吃饱了,返回Let’s go to bed for a sleep.
public String doSomething() {
}
}
// 宠物饲养程序
public class PetRaise {
public static void main(String[] args) {
// 随机购买了10种食物,食物偏好索引为1,2
int food[] = new int[10];
for (int i = 0;i < 10;i ++)
food[i] = (int)(Math.random()*2) + 1;
// 补充程序:随机领养了两只宠物
// 第一个宠物的名字:Tom;食物偏好1;饭量:3
// 第二个宠物的名字:Pluto;食物偏好2;饭量:6
// 补充程序:给领养的两个宠物喂食,直到宠物吃饱或无合适食物
// 补充程序:如果有某个宠物未吃饱,则输出是哪种食物不足
for (int i = 0;i < 2;i ++) {
}
// 补充程序:使用增强for循环带每个宠物活动(doSomething)
}
}
1)设计Pet类的目的是什么?
2)以程序为例说明多态的作用
这问题咋感觉像以前课本上的,
1)Pet类的目的是定义一个宠物类,包括宠物的基本属性和方法,作为狗和猫的基类。
2)多态的作用在这个程序中体现为:Pet类定义了基本属性和方法,而狗类和猫类继承了Pet类,并重载了其中的doSomething方法,使得相同的代码段可以根据对象不同的类型呈现出不同的行为。在PetRaise类中,使用增强for循环遍历petList列表,根据每个pet对象的实际类型调用其对应的doSomething方法,从而实现了多态。
不知道你这个问题是否已经解决, 如果还没有解决的话: