介绍
匿名类是指没有名字的类,它对一个给定的类进行拓展,或者实现一个给定的接口。使用匿名类可以使得代码更加简洁、紧凑、模块程度更高。
实现方式及语法
匿名类有两种实现方式
- 继承一个类,重写其方法
- 实现一个接口(可以是多个),实现其方法
匿名类的语法形式如下:
new <类或接口>() {
// 类的主体
};
例子比较
使用匿名类继承基类
基类
public class Polygon {
public void display(){
System.out.println("在polygon类内部");
}
}
使用匿名类来继承基类
public class example {
public void createClass(){
//创建的匿名类继承了Polygon类
Polygon p1 = new Polygon(){
public void display(){
System.out.println("在匿名类内部");
}
};
p1.display();
}
}
不使用匿名类来继承基类
public class Anonymous extends Polygon{
public void display(){
System.out.println("在匿名类内部");
}
}
使用匿名类实现接口
接口
public interface PplygonInterface {
void display();
}
使用匿名类来实现接口
public class example {
public void createClass(){
//创建的匿名类继承了Polygon类
Polygon p1 = new Polygon(){
public void display(){
System.out.println("在匿名类内部");
}
};
p1.display();
}
}
不使用匿名类来实现接口
public class PolygonInterfaceAnony implements PolygonInterface{
@Override
public void display() {
System.out.println("匿名类实现接口");
}
}
由上述例子可以看出,若用匿名类则不用重新定义一个新类,更有利于代码的简洁与可读性。