在new MyClass()
调用后放置大括号时,这是将显式类子类化的匿名类的语法.它{}
是一个空类体,因此不会覆盖任何内容,也不会声明任何构造函数.
输出Test$1
是不同的,因为匿名子类确实有一个隐式名称,它是封闭的类(Test
),然后是美元符号$
,然后是序列号(1
).编译时Test.java
,您可能会注意到,除了Test.class
和MyClass.class
,Test1.class
也存在-为匿名类的类文件.如果你要在类中声明另一个匿名子Test
类,在你的第一个匿名子类之后,它将被命名Test$2
,无论它实际上是哪个类的子类.
在new MyClass()
调用后放置大括号时,这是将显式类子类化的匿名类的语法.它{}
是一个空类体,因此不会覆盖任何内容,也不会声明任何构造函数.
输出Test$1
是不同的,因为匿名子类确实有一个隐式名称,它是封闭的类(Test
),然后是美元符号$
,然后是序列号(1
).编译时Test.java
,您可能会注意到,除了Test.class
和MyClass.class
,Test1.class
也存在-为匿名类的类文件.如果你要在类中声明另一个匿名子Test
类,在你的第一个匿名子类之后,它将被命名Test$2
,无论它实际上是哪个类的子类.