黑白内部类和匿名内部类有什么区别?您能否提供一些使用这些内部类的场景?
问问题
4833 次
1 回答
1
本地内部类由在方法中声明的类组成,而匿名类是在创建实例时声明的。因此匿名类是在运行中或在程序执行期间创建的。匿名类没有为该类声明名称,这与具有类名的本地内部类不同。
例子:
interface NamedInterface {
public InnerClass() {}
private foo() {}
public baz() {}
public bar() {}
}
class Main {
public Main() {
compareClasses();
}
public void compareClasses() {
// local inner class declaration
class InnerClass {
public InnerClass() {}
private foo() {}
public baz() {}
public bar() {}
}
InnerClass iCInstance = new InnerClass();
// anonymous class declared and instantiated during execution
NamedInterface anonymousClassInstance = new NamedInterface() {
public InnerClass() {}
private foo() {}
public baz() {}
public bar() {}
}
}
}
于 2013-09-10T12:09:38.177 回答