以下内容摘自:Thinking in Java
内部类的概念:
把一个类的定义放在另一个类的定义内部,这就是内部类
当外部类创建一个内部类对象时,内部类与生成他的外部对象之间有一种联系, 内部类会隐式地捕获一个指向其外部类对象的引用,然后,内部类访问外部类成员是,就是通过这个引用来选择外部类的成员;
内部类可以访问其外部对象的所有成员;
嵌套类(静态内部类)不持有外部类对象的引用 ,
不能从嵌套类的对象中也不能访问非静态的外部类对象;
普通内部类不能有static 数据和static 字段,也不能包含嵌套类
局部内部类 :
匿名内部类:
为什么使用内部类?
内部类使得多继承的解决方案变得完整。
内部类可以有多个实例,每个实例都有自己的状态信息,并与外部类对象的信息相互独立
在个单个外部类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类;
创建内部类对象的时刻并不依赖于外围类对象的创建
内部类并不是is-a的关系,它是一个独立的实体。
闭包:
回调: