作者:Flyingis
内部类的功能在于,每个内部类都能独立的继承一个接口的实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。内部类使得多重继承的解决方案变得完整,并且内部类允许继承多个非接口类型(类或抽象类)。<o:p></o:p>
interface Sa {<o:p></o:p>
void today();<o:p></o:p>
void yesterday();<o:p></o:p>
boolean check();<o:p></o:p>
}<o:p></o:p>
public class Sab {<o:p></o:p>
private i = 10;<o:p></o:p>
private Sab_inner implements Sa {<o:p></o:p>
void today() {<o:p></o:p>
return i;<o:p></o:p>
}<o:p></o:p>
void yesterday() {<o:p></o:p>
return --i;<o:p></o:p>
}<o:p></o:p>
Boolean check() {<o:p></o:p>
return i = = 0;<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
public Sa getSa() {<o:p></o:p>
return new Sab_inner();<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
从上面这段代码可以看出,如果我们只是声明外围类Sab实现接口Sa,那么对于某个特定的Sab对象只能有一个Sa。但是如果使用了内部类,我们就可以通过方法getSa()来获得一个实现Sa接口的序列,这样就增加了应用上的灵活性。<o:p></o:p>
在控制框架,特别是图形用户界面的设计中更能体现内部类的价值,具体的可以参考这方面的资料。