匿名内部类 从字面上解释就是没有名字的内部类,匿名内部类是基于接口或者抽象类的,跟在new的后面,隐式地实现一个接口或抽象类,根据多态,以其父类命名。匿名内部类实际上就是实现了接口或者即成抽象类,并重写了其抽象方法的类。
使用匿名内部类的好处
- 可以使命名变得简洁
- 使代码更加紧凑,简洁,封装性比内部类更优
示例
接口:
public interface AnonymousInnerClassInterface {
public void printInfo();
}
public class InnerClassTest {
public static void invokeInnerClassMethod(AnonymousInnerClassInterface obj){
obj.printInfo();
}
public static void testMethod(){
invokeInnerClassMethod(
new AnonymousInnerClassInterface() {
@Override
public void printInfo() {
System.out.println("使用匿名内部类的方式进行调用");
}
}
);
}
public static void main(String args[]){
InnerClassTest.testMethod();
}
}
/*
*匿名内部类测试
*/
public class InnerClassTest {
public static void invokeInnerClassMethod(AnonymousInnerClassInterface obj){
obj.printInfo();
}
public static void testMethod(){
invokeInnerClassMethod(
// new 的方式创建内部类并实现其抽象方法
new AnonymousInnerClassInterface() {
@Override
public void printInfo() {
System.out.println("使用匿名内部类的方式进行调用");
}
}
);
}
public static void main(String args[]){
InnerClassTest.testMethod();
}
}
输出结果: