创建抽象类烟花(Fireworks)类,该类中有一个抽象的爆炸方法 boom,使用匿名内部类实现点燃红色烟花并爆炸的效果。这样的需求该如何实现?注意:每个爆竹只能调用一次boom方法,
时间: 2024-09-29 22:10:05 浏览: 31
在Java中,你可以创建一个名为`Fireworks`的抽象类,其中包含一个抽象方法`boom()`。为了满足单次引爆的需求,并且通过匿名内部类实现特定效果(如红色烟花),你可以这样做:
```java
public abstract class Fireworks {
// 抽象方法
public abstract void boom();
// 点燃并引爆红色烟花的实例
public void lightAndBoom() {
Fireworks redFirework = new Fireworks() {
@Override
public void boom() {
System.out.println("红色烟花正在爆炸!");
}
};
redFirework.boom(); // 只能调用一次
}
}
// 如果有其他颜色的烟花,可以创建具体的子类
class RedFireworks extends Fireworks {
@Override
public void boom() {
System.out.println("红色烟花正在爆炸!");
}
}
public class Main {
public static void main(String[] args) {
Fireworks fireworks = new RedFireworks();
fireworks.lightAndBoom();
}
}
```
在这个例子中,`RedFireworks`是一个具体的子类,它实现了`Fireworks`中的`boom()`方法。当调用`lightAndBoom()`方法时,会创建一个新的`Fireworks`类型的引用,但实际上关联的是内部匿名类的实例,所以`boom()`只会被调用一次。
阅读全文