内部类
链接到外部类
- 内部类拥有外围对象所有成员的访问权限,以及外围类的访问权限。
获取外部类引用
- 在内部类中,使用外部类名称以及
.this
可以获得外部类对象的引用。
内部类访问外部类变量
- 如果内部类或者外围方法没有与外部类重名的变量,那么可以直接访问外部类的变量,如果有重名变量,则需要通过上述方法访问外部类变量。
创建内部类对象
- 如果内部类不是静态的,需要通过外部类对象来创建,例如外部类
Test
的实例test
,其包括一个内部类Inner
,那么创建方式为test.new Test.Inner()
匿名内部类
- 是指创建一个继承某个类的匿名类,通过
new
表达式返回的引用自动向上转型为父类的引用。
- 可以方便快速继承类重写方法或者实现接口。
内部类的用处
- 每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响,有效的实现了多重继承。
内部类用于回调
- 回调函数:有些库函数需要传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数就称为回调函数。
- 通过内部类实现同名方法的不同实现,后通过回调可以选择向外部提供调用的方法。
内部类与控制框架
- 应用程序框架:用于解决某类特定问题的一个类或一组类
- 控制框架:一类特殊的应用程序框架,用来解决响应事件的请求
内部类与覆盖
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.