本章目标
掌握匿名内部类的作用
掌握匿名内部类的定义格式
一个简单的操作
interface A{//定义接口 A
public void printInfo();//定义抽象方法
}
class B implements A{//定义接口实现类
public void printInfo(){//覆写抽象方法
System.out.println("Hello World!!!");
}
}
class X{//定义 X 类
public void fun1(){//定义 fun1() 方法
this.fun2(new B());//传递子类实例
}
public void fun2(A a){//接收接口实例
a.printInfo();//调用接口方法
}
}
public class NoInnerClassDemo01 {
public static void main(String[] args) {
new X().fun1();//实例化 X 类对象并调用 fun1()方法
}
/* 结果:
* Hello World!!!
* */
}
匿名内部类
匿名内部类是在抽象类和接口的基础之上发展起来的另外一种内部类的展现形式,当一个抽象类或接口的子类只需要使用一次的时候就可以使用匿名内部类的定义格式。
匿名内部类
interface A{//定义接口 A
public void printInfo();//定义抽象方法
}
class X{//定义 X 类
public void fun1(){//定义 fun1 方法
this.fun2(new A(){//匿名内部类
public void printInfo(){//实现接口中的抽象方法
System.out.println("Hello World!!!");
}
});
}
public void fun2(A a){//接收接口实例
a.printInfo();//调用接口方法
}
}
public class NoInnerClassDemo02 {
public static void main(String[] args) {
new X().fun1();//实例化 X 类对象并调用 fun1()方法
}
/* 结果:
* Hello World!!!
* */
}