作业内容: 根据要求编写代码: 1.编写以下类的定义:Chicken、Duck、Fish、 Apple, Orange, Bread, Chocolate. 2.按照要求实现继承关系,并定义相关的父类: a. Chicken、Duck、Fish的父类为Animal。 b. Apple、Orange的父类为Fruit。 c. Bread、Chocolate 不需要继承其他父类。 3. 定义接口 Edible(可以食用的),该接口只有一个方法howToEat0,方法用来输出一个字符串,描述可以食用的对象如何食用。 4. 让Chicken、Duck、Fish、Apple、Orange、Bread、Chocolate类实现Edible接口,并完成方法的具体实现。 5. 创建一个测试类Test, 在main方法中创建一个数组用来分别保存Chicken、Duck、Fish、Apple、Orange、Bread、Chocolate类的实例。 6. 创建一个静态方法void eat_food (Edible food),该方法接受一个可以食用的类作为参数并在方法内调用howToEat方法。 7.main方法中遍历数组并将数据组中的对象依次 传入eat_food0方法中查看运行结果。
时间: 2024-03-21 15:37:46 浏览: 15
以下是代码实现:
```
// Animal类
class Animal {}
// Chicken类,继承自Animal类,实现Edible接口
class Chicken extends Animal implements Edible {
@Override
public void howToEat() {
System.out.println("炸鸡,烤鸡,煮鸡都可以食用。");
}
}
// Duck类,继承自Animal类,实现Edible接口
class Duck extends Animal implements Edible {
@Override
public void howToEat() {
System.out.println("烤鸭,煮鸭都可以食用。");
}
}
// Fish类,继承自Animal类,实现Edible接口
class Fish extends Animal implements Edible {
@Override
public void howToEat() {
System.out.println("清蒸鱼,红烧鱼都可以食用。");
}
}
// Fruit类
class Fruit {}
// Apple类,继承自Fruit类,实现Edible接口
class Apple extends Fruit implements Edible {
@Override
public void howToEat() {
System.out.println("可以洗净后直接食用。");
}
}
// Orange类,继承自Fruit类,实现Edible接口
class Orange extends Fruit implements Edible {
@Override
public void howToEat() {
System.out.println("可以剥皮后直接食用。");
}
}
// Bread类,不需要继承其他父类,实现Edible接口
class Bread implements Edible {
@Override
public void howToEat() {
System.out.println("可以直接食用,也可以加热后食用。");
}
}
// Chocolate类,不需要继承其他父类,实现Edible接口
class Chocolate implements Edible {
@Override
public void howToEat() {
System.out.println("可以直接食用,也可以融化后涂抹在其他食物上。");
}
}
// Edible接口,定义一个howToEat方法
interface Edible {
void howToEat();
}
// Test类,用来测试
public class Test {
public static void main(String[] args) {
// 创建一个数组用来保存各种食物的实例
Edible[] foods = new Edible[7];
foods[0] = new Chicken();
foods[1] = new Duck();
foods[2] = new Fish();
foods[3] = new Apple();
foods[4] = new Orange();
foods[5] = new Bread();
foods[6] = new Chocolate();
// 遍历数组并调用eat_food方法
for (Edible food : foods) {
eat_food(food);
}
}
// eat_food方法,接受一个可以食用的类作为参数并在方法内调用howToEat方法
public static void eat_food(Edible food) {
food.howToEat();
}
}
```
运行结果:
```
炸鸡,烤鸡,煮鸡都可以食用。
烤鸭,煮鸭都可以食用。
清蒸鱼,红烧鱼都可以食用。
可以洗净后直接食用。
可以剥皮后直接食用。
可以直接食用,也可以加热后食用。
可以直接食用,也可以融化后涂抹在其他食物上。
```