JAVA想避免多重继承带来的问题,但又想有某些类似能力,所以引入的接口(interface)的概念。如果某个类实现了一个接口,那么这个类就是instanceof那个接口了。其实接口就像一个只有方法,没有属性的类吧。

解决方案 »

  1.   

    myDir.listFiles()需要使用接口啊,其实
    myDir.listFiles(myFileFilter)也行
      

  2.   

    不完全是这样。其实接口和类本身还是略有区别。接口定义操作,而类定义实体。正是因为接口定义操作,所以不需要属性,只要方法。看看名字:
    Serializable, Clonable
    这样的名字永远不会用于类,只会用于接口。当然,的确是变相实现了多重继承的一些功能,这个没错。这里,如果给方法传参数,java编译器自动up casting。所以,你传FilenameFilter还是MyFilenameFilter都一样。但是,前者更清晰。