【问题标题】:What is the Difference between inner class and anonymous inner class in java? [duplicate]java中的内部类和匿名内部类有什么区别? [复制]
【发布时间】:2013-09-10 12:04:49
【问题描述】:

b/w Inner 类和匿名 Inner 类有什么区别?您能否给出一些使用这些内部类的场景?

【问题讨论】:

  • 内部类可以实例化,匿名类不能实例化,只执行一次。
  • google“匿名类与内部类”

标签: java


【解决方案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() {}
         }
    }
}

【讨论】:

  • 能否请您提供一些实时场景?
  • 检查上面给出的链接..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-14
  • 2019-06-05
相关资源
最近更新 更多