
匿名类是不能有名字的类,通常作为内部类使用,本质上是隐式继承一个类或实现一个接口的子类匿名对象。
匿名类没有显式的类名,因此只能在创建时通过new语句声明并实例化,其声明在编译时完成,实例化在运行时进行,同一new语句多次执行将生成相同匿名类的多个实例。 形式为new后接父类或接口构造器,且在类体中直接实现所需方法,必须继承一个类或实现一个接口,没有构造方法且创建后只能使用一次。 匿名类通过继承父类或实现接口定义,适用于临时对象创建或一次性场景(如GUI事件处理或多线程编程),不应包含静态成员等非必要方法。作用域限于声明代码块,作为局部内部类,可以访问外部类的final或effectively final局部变量。 PHP8使用new class语法动态创建。
不同编程语言中匿名类实现方式各异:Java要求必须继承父类或实现接口,其匿名内部类由编译器生成独立类文件。Visual Basic通过编译器生成包含指定属性的匿名类型,且实例化方式与命名类型不同。 C/C++中可使用匿名结构,但受不能具有构造函数或析构函数等限制。
想要了解更多“匿名类”的信息,请点击:匿名类百科
