匿名内部类
what
匿名内部类也就是没有名字的内部类
正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
why
-
内部类方法可以对访问该类定义所在域中的所有数据,包括私有数据
-
内部类方法可以访问对同一个包中其他的类隐藏起来
-
当需要定义一个回调函数且不想编写大量代码,使用匿名内部类比较便捷
注意
-
使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或者实现一个接口。
-
匿名内部类中是不能定义构造函数的。
-
匿名内部类中不能存在任何的静态成员变量和静态方法。
-
匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。
-
匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。
对于匿名内部类的使用它是存在一个缺陷的,就是它仅能被使用一次,创建匿名内部类时它会立即创建一个该类的实例,该类的定义会立即消失,所以匿名内部类是不能够被重复使用。
实践
- 创建线程的时候,三种方式创建的都是匿名内部类
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果