一直以来,我一直认为接口是不可以创建对象的,随着学习的不断深入发现这是片面或错误的。接口存在的意义就是支持java的多态机制。java规定接口interface不能直接使用new关键字来创建对象,但并没有限定它不能创建对象。学习了匿名内部类后,可以发现,接口使用匿名方式创建对象也是可以的。
例如:
File driec = new File("G:/file/test");
File[] files = driec.listFiles(new FilenameFilter() { //FilenameFilter是接口,创建其匿名对象
@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isFile() && name.endsWith(".java");
}
});
如有错误,欢迎指正。