匿名内部类
匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口,但最多只能继承一个父类或接口
语法:
一.匿名内部类适合创建那种只需要一次使用的类(命令模式)
(1)定义匿名内部类的格式:
new 实现接口( ) || 父类构造器(实参列表)
{
//匿名内部类的实体部分
}
(2)匿名内部类的规则
1.匿名内部类不能是抽象类,因为系统在创建匿名内部类时,会立即创建匿名内部类的对象.
2.匿名内部类不能定义构造器.由于匿名内部类没有类名,所以无法定义构造器.但匿名内部类可以定义初始化块
二.匿名内部类的两种形式
1、隐式:当通过实现接口来创建匿名内部类时,匿名内部类只有隐式的无参数构造器,故new后面不能传入参数值(接口不包含构造器)
2、显式:如果局部变量被匿名内部类访问,那么该局部变量相当于使用了final修饰,系统会默认加上final修饰符,此时若再修改该局部变量值,会编译报错