如何调用匿名内部类的方法?

时间:2012-11-06 12:27:52

标签: java inner-classes anonymous-inner-class

我理解这段代码不合法​​:

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()
    }
}

那么什么方法可以调用嘶嘶声方法呢?

1 个答案:

答案 0 :(得分:6)

匿名类的方法必须覆盖/实现其超类的方法才能从外部访问。不幸的是,没有办法编写更多样板来实现你的目标。