Java中的匿名内部类如何工作?如何定义和使用它们?
发布时间:2023-05-30 05:11:07
匿名内部类是Java中的一种特殊的类,它可以在定义时同时创建一个对象,并且不需要显示地命名类。通过使用匿名内部类,可以简单地实现接口或抽象类的子类,并且不需要编写额外的代码文件。
一个匿名内部类可以被定义为以下方式:
new InterfaceOrClass() {
// implementation of methods or members
}
其中InterfaceOrClass可以是一个接口或者一个类。在花括号中,可以实现接口的所有方法或者重写类的方法,也可以声明并使用变量和方法。
使用匿名内部类的方法通常如下所示:
public class Example {
public void doSomething() {
InterfaceOrClass obj = new InterfaceOrClass() {
// implementation of methods or members
};
obj.method1();
obj.method2();
}
}
使用关键字“new”创建了一个匿名内部类,并通过变量“obj”引用所创建的对象。在这种情况下,“obj”变量是一个InterfaceOrClass类型的引用,可以调用接口或基类中定义的方法。
匿名内部类的工作原理是在定义时类的对象同时被创建了。因此,匿名内部类无法直接被实例化或使用,因为它没有名称。相反,可以找到它的父类或接口中的方法,并通过它的实例调用。
总之,Java中的匿名内部类提供了一种简单的方式实现接口或抽象类的子类,并且不需要编写额外的代码文件。使用匿名内部类的方法非常简单,只需要在定义时创建一个内部类,并在花括号中实现它的方法或者声明变量和方法。匿名内部类的工作是在定义时就创建了它的对象,因此需要通过它的父类或接口中的方法来使用它。
