用法原本是没啥区别,匿名内部类就是内部类的简化。
但是简化必然有优点和不足(毕老爷原话。。):
优点简单来说就是不用定义类,直接new就行。
接着就是缺点了:
匿名内部类由于没有定义类,缺少了该类的引用,这导致两个问题:
1.无法创建对象,new啥不知道。。于是匿名内部类强制要求继承一个类,或者实现一个接口,用父类名或接口名做引用。(非匿名内部类没有这强制要求)
在这过程中还导致了新的问题,继承虚类或接口后,必须覆盖虚方法,需要覆盖的方法过多或导致代码 可读性下降。这种情况不推荐使用匿名内部类。
2.无法二次创建对象,即创建一次咱们就得写一遍匿名内部类。
|