下边是文件名过滤器的实现代码 
问题 
1:accept的实现方法中:参数filename和API文档中的accept参数名(name)不一致??? 
                      方法的实现算不算“重写”呢?方法的重写不是要求方法声明完全一致吗? 
2:方法accept中的参数名称好象不重要,改为别的名称一样程序可以运行,这是为什么?? import java.io.*; 
class FileFilterDemo implements FilenameFilter //定义过滤文件名类 

private String name; 
private String ext; 
public FileFilterDemo(String name, String ext) { //建立方法 
this.name = name; 
this.ext = ext; 

public boolean accept(File dir, String filename) { //定义accept 
boolean fString = true; 
if(name != null) 
fString &= filename.startsWith(name); 
if(ext != null) 
fString &= filename.endsWith("." + ext); 
return fString; 

} public class JavaDirDemo 

static void print(String s) { //定义print方法 
System.out.println(s); 
} public static void main(String[] args) 

File path = new File("C:/jdk/bin"); //建立文件所在目录 
print("文件路径" + path); //显示工作路径 
FilenameFilter x = new FileFilterDemo("java", "exe"); 
//定义要过滤的文件名 
String s[] = path.list(x); //取得符合的文件名 
for(int i=0; i <s.length; i++) 
print(s[i]); //显示符合的文件名 


解决方案 »

  1.   

    1,重写是 父类与子类的关系  上面accept是重写的。
    实现算是重写,参数必须一样2,改为其他一样可以运行,说明你添加了新的方法,不是重写父类的
      

  2.   

    1.java.io.FilenameFilter
     方法:accept(File dir, String name) 你应该看成FileFilter了。2.方法中参数名字本来就可以随便你命名。3.你的结帖率太低了,没人敢回了。
      

  3.   

    谢谢了 
    我的意思是说JAVA在使用path.list(x)时,只传了一个FilenameFilter对象x进去,且指定
    String name, String ext,accept中的参数是怎么传进去的???我会提高结帖率的