一. 由来
在定义interface
接口后,我们知道,是不可以直接new创建接口的对象的,而是要先通过一个类来implement
此接口,并将interface
的所有抽象方法重写后,才能够new此类对象来调用方法。
那有没有办法能够直接new出”接口对象“,而不需要再创建一个类这么麻烦呢?
答案是,采用匿名内部类。
二. 使用方法
1. 基于接口
例如,对于接口IA:
只用打出:
IA hhhh = new IA //然后按下回车就会自动重写
就可以在重写方法的同时,创建IA的对象。
但其实在内部,实际上创建了一个匿名的类,完成了之前所表述的“冗杂”的步骤。
然后采用hhhh.cry()
即可调用cry方法,不过要注意,其运行类型是匿名的内部类。
2. 基于类
对于有自己方法的类,无论是抽象方法,还是已经完成的方法,例如:
也都可以通过new其对象并重写方法 这样的做法,来使用匿名内部类。