1.真正实现多重继承:
外部类可以继承 基类 也可以 实现接口,那么什么让我们选择内部类呢?——每个内部类可以独立地继承一个接口的实现或者是一个类,内部类不会受外部类是否有几成影响。
所以当 有多个抽象类或者是多个实现类的需要和你这个类有关联的时候,你就需要选择内部类了。
2.闭包与回调
闭包的意思大概就是一个可以调用的对象,然后存了创建它的区域的一些信息,内部类的对象会有外部类对象的信息,所以内部类是个面向对象的闭包。
然后回调在其他语言中是一种类似指针的机制,但Java没有,因为指针程序员容易犯错。Java是通过内部类的闭包特性来实现这一机制的。
在thinking in Java的p283-284左右讲吧
3.内部类可以用在控制框架上
thinking in Java书上p265左右给了个绿色温室控制器的例子——GreenHouseControls