我理解这段代码不合法:
class Popcorn {
public void pop() {
System.out.println("popcorn");
}
}
class Food {
Popcorn p = new Popcorn() {
public void sizzle() {
System.out.println("anonymous sizzling popcorn");
}
public void pop() {
System.out.println("anonymous popcorn");
}
};
public void popIt() {
p.pop(); // OK, Popcorn has a pop() method
p.sizzle(); // Not Legal! Popcorn does not have sizzle()
}
}
那么什么方法可以调用嘶嘶声方法呢?
答案 0 :(得分:6)
匿名类的方法必须覆盖/实现其超类的方法才能从外部访问。不幸的是,没有办法编写更多样板来实现你的目标。