我个人理解匿名类其实就是创建一个对象的行为,只不过这里没有类的声明只是通过类体来进行创建,创建的对象为该类体的子类的对象,也可以继承重写父类的方法。通过下面的代码来直观的展示一下:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.*;
import java.lang.*;
class A{
int a;
public void f(){
System.out.println(233);
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "我是A类";
}
}
public class Main{
public static void f(A a) {
System.out.println(a);
}
public static void main(String[] args) {
A a = new A();
f(a);
f(new A());//不重写父类方法的匿名类
f(new A() {
@Override
public String toString() {
// TODO Auto-generated method stub
return "我是有特色的匿名类";
}
});//重写父类的匿名类;
}
}
没错输出结果集就是你想的那样*-*:
我是A类
我是A类
我是有特色的匿名类