刚学完内部类,想了想内部类是为了什么存在的呢?于是带着这样的疑问去百度了一下,大家众说纷纭,其中有一种说法比较流行,但小弟学识浅薄,对JAVA的理解也不够深入,个人感觉内部类的设计有些鸡肋具体如下:
1.内部类可以很好的实现隐藏,一般的非内部类,是不允许有 private 与protected权限的,但内部类可以。
我认为在现在SOA的环境下,隐藏实现已经习惯通过接口的形式来表达了,用内部类来隐藏实现显得有些小家子气。
2.内部类拥有外围类的所有元素的访问权限。
这种说法感觉有些牵强,除非说内部类要达到高内聚,通过内部类来编辑成员变量。但你能做的,类方法同样可以做到。
3.可是实现多重继承。
这个确实是有用的,但我们为何不反思,为什么会造成多继承的需求?最初设计上还是存在弊端。
4.可以避免修改接口而实现同一个类中两种同名方法的调用。
这种情况遇到的很少,而即便出现又有什么问题呢,管他是实现了接口的方法,还是重写了父类的方法,你只需要知道你写的这个类已经具备了这个方法就OK了。
原文:http://blog.csdn.net/zhao9tian/article/details/36221915