Java中的内部类感觉很奇怪,一个类中还要再嵌套一个类。为什么要这样做呢?
-
内部类提供了一个类中实现同一接口的多次机会。
一般情况下,在一个普通类中,是没有办法将一个方法写两遍,还能表达不同意思的,而内部类可以很好地实现这一点。 -
提供一个实现多重继承的思路
Java一个子类只能继承单一父类,没有办法实现多重继承,而使用内部类可以一定程度解决这个问题。比如,你不能同时又是一个狗又是一个按钮,但有的时候你需要这样做。Dog可以继承Animal类,然后可以创建一个内部类来代表按钮的行为,因此有需要的时候Dog就可以派出内部类来代表按钮。也就是说,Dog虽然不能x.takeButton(this)
但是可以x.takeButton(new DogInnerButton())
参考资料
《Head First Java》