【发布时间】:2013-09-10 12:04:49
【问题描述】:
b/w Inner 类和匿名 Inner 类有什么区别?您能否给出一些使用这些内部类的场景?
【问题讨论】:
-
内部类可以实例化,匿名类不能实例化,只执行一次。
-
google“匿名类与内部类”
标签: java
b/w Inner 类和匿名 Inner 类有什么区别?您能否给出一些使用这些内部类的场景?
【问题讨论】:
标签: java
本地内部类由在方法中声明的类组成,而匿名类是在创建实例时声明的。因此匿名类是在运行中或在程序执行期间创建的。匿名类没有为该类声明名称,这与具有类名的本地内部类不同。
例子:
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() {}
}
}
}
【讨论】: