English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,您将借助示例学习Java中的匿名类。
在Java中,一个类可以包含另一个称为嵌套类的类。可以在不提供任何名称的情况下创建嵌套类。
没有任何名称的嵌套类称为匿名类。
必须在另一个类中定义一个匿名类。因此,它也被称为匿名内部类。其语法为:
class outerClass { //定义匿名类 object1 = new Type(parameterList) { //匿名类的主体 }; }
匿名类通常继承子类或实现接口。
在这里,类型(Type)可以是
匿名类继承的超类
匿名类实现的接口
上面的代码在运行时创建了一个匿名类的对象object1。
注意:匿名类在表达式内定义。因此,在匿名类的末尾使用分号来表示表达式的末尾。
class Polygon { public void display() { System.out.println("在Polygon类内"); } } class AnonymousDemo { public void createClass() { //创建匿名类,继承类Polygon Polygon p1 = new Polygon() { public void display() { System.out.println("Innerhalb der anonymen Klasse."); } }; p1.display(); } } class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); } }
Ausgaberesultat
Innerhalb der anonymen Klasse
在上面的示例中,我们创建了一个类Polygon。它只有一个方法display()。
然后,我们创建了一个匿名类,该类继承类Polygon并重写了display()方法。
当我们运行该程序时,将创建一个匿名类的对象p1。然后该对象调用匿名类的display()方法。
interface Polygon { public void display(); } class AnonymousDemo { public void createClass() { //匿名类实现接口 Polygon p1 = new Polygon() { public void display() { System.out.println("Innerhalb der anonymen Klasse."); } }; p1.display(); } } class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); } }
Ausgaberesultat
Innerhalb der anonymen Klasse
Im obigen Beispiel wurde eine anonyme Klasse erstellt, die das Polygon-Interface implementiert.
In anonymen Klassen wird ein Objekt erstellt, wenn es benötigt wird. Das bedeutet, ein Objekt wird erstellt, um bestimmte Aufgaben auszuführen. Zum Beispiel,
Object = new Example() { public void display() { System.out.println("Anonyme Klasse überschreibt display() Methode."); } };
Hier wird ein Objekt der anonymen Klasse dynamisch erstellt, wenn wir die display() Methode überschreiben müssen.
Anonyme Klassen helfen uns auch, den Code zu vereinfachen.