-
没有名字。
实际上编译器会指定名字,一般是 :外部类名称 + $ + 匿名类顺序 。
-
只能继承一个父类或实现一个接口。
匿名类由父类或接口直接派生,Java语法不允许同时继承父类和实现接口,kotlin可以。
-
父类是非静态的类型,则需父类外部实例来初始化。
-
如果定义在非静态作用域内,会引用外部实例。
-
只能使用外部作用域内的final变量。
匿名内部类会持有一份该变量的引用,为了防止变量变化引起歧义,故要求final保持不变。
-
创建时只有单一方法的接口可用lambda表达式。
网友评论