使用匿名内部类有一个前提条件:必须继承一个父类或者实现一个接口。
对于匿名内部类的使用存在一个缺陷,就是它仅能被使用一次,创建匿名内部类时它会立即创建一个该类的实例,该类的定义会立即消失,所有匿名内部类是不能够被重复使用的。
匿名内部类是局部内部类的更深入一步
只针对重写一个方法时使用,需要重写多个方法时不建议使用
格式:
new 类名或接口名(){
重写方法;
}; //注意分号
//以上就是内部类的格式,其实这整体就相当于是new出来的一个对象
注意事项:
- 使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或者实现一个接口。
- 匿名内部类中不能定义构造函数的。
- 匿名内部类中不能存在静态成员变量和静态方法。
- 匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。
- 匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。