匿名内部类
就是在一个类的内部还存在着另外一个类,称为内部类。匿名内部类是在抽象类和接口的基础之上发展起来的。
package com.cblue.java14;
interface A{
public void fun();
}
class B implements A{
public void fun() {
System.out.println("Hello World");
}
}
class X{
public void fun(A a ){
a.fun();
}
public void fun1(){
this.fun(new B());
}
}
public class NonameDemo01 {
public static void main(String[] args) {
new X().fun1();
}
}
如果假设B类只使用一次,那么还有必要将其定义成一个单独的类吗?
package com.cblue.java14;
interface A1{
public void fun();
}
class X1{
public void fun(A a ){
a.fun();
}
public void fun1(){
this.fun(new A(){
public void fun(){//匿名内部类
System.out.println("Hello World");
}
});
}
}
public class NonameDemo02 {
public static void main(String[] args) {
new X().fun1();
}
}
此时就可以使用匿名内部类来解决!
在一般的开发中匿名内部类的使用较少,现在只有两种情况下可以经常看见匿名内部类。
1:Java的图形界面
2:Spring的开发框架中
详情:http://www.kkdrm.com