我不明白为什么我在下面指示的行上出现错误。如果有涉及该主题的特定主题,请提供一行(或说明)。
public interface Button {
void press();
}
public class Bomb implements Button {
public void press() {
System.out.println("Doesn't work");
}
void boom() {
System.out.println("Exploded");
}
}
public class Test {
public static void main(String[] args) {
Button redButton = new Bomb();
redButton.press();
redButton.boom(); // <-- Error is on this line.
}
}
最佳答案
Button redButton = new Bomb();
接口
Button
没有定义方法boom()
。运行时实例可以是
Bomb
(具有boom()
),但是编译器不知道(仅看到编译时类型,即Button
)。您需要使用由类
Bomb
定义的接口:Bomb redButton = new Bomb();