为什么要有匿名内部类?

匿名内部类实现:
https://www.cnblogs.com/geeksongs/p/9836154.html
“这显然继承了一个抽象类,并且在主方法当中创建了抽象类的对象,本来我们是应该先继承这个抽象类再开始创建对象的,否则对象是无法创建的,但是为了简便,人们创建了了匿名内部类,允许我们在主方法当中进行抽象类的实例化,同时也可以进行对象的创建。这个程序就等同于如下的程序…”

以下代码原文/出处:
https://www.zhihu.com/question/20794107/answer/658139129

举一个例子:

invocationHandler的invoke()方法中并没有写目标对象。因为一开始invocationHandler的invoke()里确实没有目标对象,需要我们手动new。

为什么要有匿名内部类?_第1张图片

但这种写法不够优雅,属于硬编码。我这次代理A对象,下次想代理B对象还要进来改invoke()方法,太差劲了。改进一下,让调用者把目标对象作为参数传进来:
为什么要有匿名内部类?_第2张图片

你可能感兴趣的:(快乐星球(基础))