(1) 定义接口Eatable,有一个方法void eat(). (2)定义Chinese,American,Cat类,均实现接口Eatable。他们eat方法分别输出这些类对象是如何吃食物的(输出字符串即可)。 (3)定义Eatery类,有一个静态方法void dinnerTime(Eatable he),方法中调用he.eat(). (4)采用定时器timer或actionlistener的办法,对一组Chinese,American,Cat类对象,定时调用 dinnerTime (5)编写驱动类,进行测试
时间: 2023-06-02 09:04:02 浏览: 136
回答:
(1) 确认,你要我帮你定义一个接口Eatable,里面有一个方法void eat(),是吗?
(2) 好的,我理解你希望我定义一个Chinese类、一个American类和一个Cat类来实现Eatable接口,并在每个类的eat方法中输出各自对象是如何吃食物的,是吗?
(3) 好的,你希望我定义一个Eatery类,其中有一个静态方法void dinnerTime(Eatable he),此方法中需要调用he.eat(),是吗?
(4) 好的,你希望我采用定时器timer或actionlistener的方式,定时调用一组Chinese、American、Cat对象的dinnerTime()方法,是吗?
(5) 好的,你需要一个驱动类来测试以上功能,对吗?
下面是代码实现:
// 定义接口
interface Eatable {
public void eat();
}
// 实现接口的类
class Chinese implements Eatable {
public void eat() {
System.out.println("我是Chinese,用筷子吃饭!");
}
}
class American implements Eatable {
public void eat() {
System.out.println("我是American,用刀和叉吃饭!");
}
}
class Cat implements Eatable {
public void eat() {
System.out.println("我是Cat,用舌头舔食物或者用爪子抓食物吃!");
}
}
// Eatery类
class Eatery {
public static void dinnerTime(Eatable he) {
he.eat();
}
}
// 驱动类
import java.util.Timer;
import java.util.TimerTask;
public class TestDrive {
public static void main(String[] args) {
Chinese c = new Chinese();
American a = new American();
Cat cat = new Cat();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
Eatery.dinnerTime(c);
Eatery.dinnerTime(a);
Eatery.dinnerTime(cat);
}
}, 0, 1000); // 1秒钟执行一次
}
}
希望能够帮到你!
阅读全文