匿名内部类就是内部类的简写格式
下面写法使用较多
匿名内部类的前提是必须继承或者实现一个外部类或者接口
匿名内部类由于没有名字,所以它没有构造函数
如果这个匿名内部类继承了一个只含有带参数构造函数的父类,创建它的时候必须带上这些参数
不能定义静态成员
匿名内部类的使用场景
当方法参数是接口类型时,而且接口中的方法不超过三个,可以用匿名内部类作为实际参数进行传递
匿名内部类的使用限制
匿名内部类不能是抽象的
匿名内部类不能定义构造器,默认和父类相似的构造器
JDK1.8-
要求给局部内部类、匿名内部类访问的局部变量必须使用
final
修饰,从
JDK1.8
开始这个现
实被取消了,但是默认是
final
的(不能修改
)
int
等
8
种简单类型
/Integer8
种简单类型的包装类
/String
的使用中应该注意
内部类的使用场景和好处
每个内部类都能独立的继承一个接口的实现,所以无论外部类是否已经继承了某个
(
接口的
)
实现,
对于内部类都没有影响。内部类使得多继承的解决方案变得完整
方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏
方便编写事件驱动程序
方便编写线程代码。