Java 匿名类
Java 匿名类
在本教程中,您将通过示例了解 Java 中的匿名类。
在Java中,一个类可以包含另一个被称为嵌套类的类。可以在不提供任何名称的情况下创建嵌套类。
没有任何名称的嵌套类称为匿名类。
匿名类必须在另一个类中定义。因此,它也被称为匿名内部类。它的语法是:
class outerClass {
// defining anonymous class
object1 = new Type(parameterList) {
// body of the anonymous class
};
}
匿名类通常扩展子类或实现接口。
在这里,输入 可以
- 匿名类扩展的超类
- 匿名类实现的接口
上面的代码创建了一个对象,object1
, 运行时的匿名类。
注意: 匿名类在表达式中定义。所以,分号用在匿名类的末尾,表示表达式的结束。
示例 1:匿名类扩展类
class Polygon {
public void display() {
System.out.println("Inside the Polygon class");
}
}
class AnonymousDemo {
public void createClass() {
// creation of anonymous class extending class Polygon
Polygon p1 = new Polygon() {
public void display() {
System.out.println("Inside an anonymous class.");
}
};
p1.display();
}
}
class Main {
public static void main(String[] args) {
AnonymousDemo an = new AnonymousDemo();
an.createClass();
}
}
输出
Inside an anonymous class.
在上面的例子中,我们创建了一个类 Polygon .它有一个方法 display()
.
然后我们创建了一个扩展类 Polygon 的匿名类 并覆盖 display()
方法。
当我们运行程序时,一个对象 p1 匿名类的创建。然后该对象调用 display()
匿名类的方法。
示例 2:实现接口的匿名类
interface Polygon {
public void display();
}
class AnonymousDemo {
public void createClass() {
// anonymous class implementing interface
Polygon p1 = new Polygon() {
public void display() {
System.out.println("Inside an anonymous class.");
}
};
p1.display();
}
}
class Main {
public static void main(String[] args) {
AnonymousDemo an = new AnonymousDemo();
an.createClass();
}
}
输出
Inside an anonymous class.
在上面的例子中,我们创建了一个实现 Polygon
的匿名类 界面。
匿名类的优点
在匿名类中,只要需要,就会创建对象。也就是说,创建对象是为了执行某些特定任务。例如,
Object = new Example() {
public void display() {
System.out.println("Anonymous class overrides the method display().");
}
};
在这里,当我们需要重写 display()
时,会动态创建一个匿名类的对象 方法。
匿名类也帮助我们使代码简洁。
java