在JAVA中有匿名类,可以支持传入集成的接口/父类。
Java 中可以实现一个类中包含另外一个类,且不需要提供任何的类名直接实例化。
主要是用于在我们需要的时候创建一个对象来执行特定的任务,可以使代码更加简洁。
匿名类是不能有名字的类,它们不能被引用,只能在创建时用 new 语句来声明它们。
使用方式:
class outerClass {
// 定义一个匿名类
object1 = new Type(parameterList) {
// 匿名类代码
};
}一、匿名类继承一个父类
class APolygon {
public void display() {
System.out.println("在 Polygon 类内部");
}
}
class AnonymousDemo {
public void createClass() {
// 创建的匿名类继承了 Polygon 类
APolygon p1 = new APolygon() {
public void display() {
System.out.println("在匿名类内部。");
}
};
p1.display();
}
}
class Main {
public static void main(String[] args) {
AnonymousDemo an = new AnonymousDemo();
an.createClass();
}
}在AnonymousDemo的CreateClass方法中,匿名创建一个APolygon类,调用的结果就是匿名类的方法,输出
在匿名类内部。
二、匿名类实现一个接口
interface IPolygon {
public void display();
}
class AnonymousDemo {
public void createClass() {
// 匿名类实现一个接口
IPolygon p1 = new Polygon() {
public void display() {
System.out.println("在匿名类内部。");
}
};
p1.display();
}
}
class Main {
public static void main(String[] args) {
AnonymousDemo an = new AnonymousDemo();
an.createClass();
}
}在AnonymousDemo的CreateClass方法中,匿名创建一个Polygon类继承了IPolygon接口,调用的结果就是匿名类的方法,输出
在匿名类内部。