使用匿名类创建对象。现在有一个接口Restaurant,接口中有一个点餐的抽象方法order(String food),如下所示: interface Restaurant{ void order(String food); } 现在,你需要写一个顾客类Customer,其中含有一个吃饭的方法eat,并接收Restaurant类型的参数,进行点餐操作。 同时,你要完成测试类的编写,使用匿名类打印出具体的点餐情况。
时间: 2024-02-25 21:58:28 浏览: 97
好的,以下是Customer类和测试类的实现:
```java
public class Customer {
public void eat(Restaurant restaurant, String food) {
restaurant.order(food);
}
}
public class Test {
public static void main(String[] args) {
Customer customer = new Customer();
customer.eat(new Restaurant() {
@Override
public void order(String food) {
System.out.println("I ordered " + food);
}
}, "hamburger");
}
}
```
在测试类中,我们创建了一个匿名的Restaurant对象,并在其中实现了order方法。在eat方法中,我们将Restaurant对象和食物名称作为参数传递,然后使用Restaurant对象调用order方法。最后,我们使用System.out.println打印出点餐情况。
输出结果为:I ordered hamburger
相关问题
interface Restaurant{ void order(String food); }
这段代码定义了一个接口`Restaurant`,其中只有一个抽象方法`order(String food)`。这个接口可以被餐厅类实现,用来实现点餐的功能。在这个接口中,`order`方法的参数是一个字符串类型的`food`,表示顾客点的菜品名称。由于这是一个抽象方法,所以在实现这个接口的类中必须要实现这个方法。
创建一个名为Restaurant 的类,为其方法 init() 设置属性restaurant_name 和cuisine_type 。 创建一个名为describe_restaurant() 的方法和一个名 为open_restaurant() 的方法,前者打印前述两项信息,而 后者打印一条消息,指出餐馆正在营业。 根据这个类创建一个名为restaurant 的实例,分别打印其两 个属性,再调用前述两个方法,创建一个名为Restaurant 的类,为其方法 init() 设置属性restaurant_name 和cuisine_type 。 创建一个名为describe_restaurant() 的方法和一个名 为open_restaurant() 的方法,前者打印前述两项信息,而 后者打印一条消息,指出餐馆正在营业。 根据这个类创建一个名为restaurant 的实例,分别打印其两 个属性,再调用前述两个方法
很抱歉,我刚才回答您的问题似乎出了一些问题,导致重复了您的要求,以下是正确回答:
下面是符合您要求的 Python 代码:
```python
class Restaurant:
def __init__(self, restaurant_name, cuisine_type):
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
def describe_restaurant(self):
print("餐厅名称:", self.restaurant_name)
print("餐厅菜系:", self.cuisine_type)
def open_restaurant(self):
print("餐厅正在营业!")
restaurant = Restaurant("海底捞", "火锅")
print("餐厅名称:", restaurant.restaurant_name)
print("餐厅菜系:", restaurant.cuisine_type)
restaurant.describe_restaurant()
restaurant.open_restaurant()
```
运行结果如下:
```
餐厅名称: 海底捞
餐厅菜系: 火锅
餐厅名称: 海底捞
餐厅菜系: 火锅
餐厅正在营业!
```
代码解释如下:
我们定义了一个名为 `Restaurant` 的类,其中包含了一个构造方法 `__init__()`,用于初始化属性 `restaurant_name` 和 `cuisine_type`。另外,类中还定义了 `describe_restaurant()` 和 `open_restaurant()` 两个方法,分别用于打印餐厅名称和菜系信息,以及打印餐厅正在营业的消息。
我们接着创建了一个名为 `restaurant` 的类实例,传入了餐厅名称和菜系两个参数。接下来,我们先分别打印了实例的两个属性,然后依次调用了 `describe_restaurant()` 和 `open_restaurant()` 两个方法。最终,程序输出了我们期望的结果。
阅读全文