当前位置:  技术问答>java相关

基类与接口?(虽然才知道JAVA版something happened,但是有问题还是得冒险问啊)

    来源: 互联网  发布时间:2015-08-24

    本文导语:  举个例子 myFileFilter.java的内容: class myFileFilter implements FilenameFilter {    public myFileFilter(String name, String extension)    {      this.name = name;      this.extension = extension;    }    //接口方法定义......       p...

举个例子

myFileFilter.java的内容:
class myFileFilter implements FilenameFilter
{
   public myFileFilter(String name, String extension)
   {
     this.name = name;
     this.extension = extension;
   }

   //接口方法定义......
  
   private String name;
   private String extension;
}


testFile.java的内容:
class testFile
{
   public static void main(String[] args)
   {
      File myDir = new File("c:\javasrc\");
      .......
      FilenameFilter select = new myFileFilter("F", "java");
      File[] contents = myDir.listFiles(select);
      ......
    }
}

我的问题是,为什么要把select 申明为FilenameFilter接口的对象呢?应该是myFileFilter才对啊。而且我也试过了,用后者申明运行出来的结果是一样的。

难道这里的FilenameFilter是myFileFilter的基类?如果是这样的话,在myFileFilter的类定义中应该是class myFileFiler extends FilenameFilter才对啊。
或者说接口可以当基类来使用?

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

|
不完全是这样。其实接口和类本身还是略有区别。接口定义操作,而类定义实体。

正是因为接口定义操作,所以不需要属性,只要方法。看看名字:
Serializable, Clonable
这样的名字永远不会用于类,只会用于接口。

当然,的确是变相实现了多重继承的一些功能,这个没错。

这里,如果给方法传参数,java编译器自动up casting。所以,你传FilenameFilter还是MyFilenameFilter都一样。但是,前者更清晰。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.script接口invocable的类成员方法: getinterface定义及介绍
  • 关于LOCAL接口和REMOTE接口的同时兼顾的问题
  • java命名空间javax.lang.model.element接口typeelement的类成员方法: getinterfaces定义及介绍
  • 请问 linux 是如何调用 alsa的控制接口的??是通过控制接口名字吗?
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getmanagementspecversion定义及介绍
  • LINUX下最大支持虚接口数是多少? 如果我想配置1000个虚接口可以吗?
  • java命名空间java.beans.beancontext接口beancontextproxy的类成员方法: getbeancontextproxy定义及介绍
  • 对于操作系统的程序接口,作业接口,单内核,微内核到底有什么区别?
  • java命名空间javax.print接口uriexception的类成员方法: getreason定义及介绍
  • java的API中有没有既实现了Map接口又实现了List接口的类?
  • java命名空间javax.swing.text接口caret的类成员方法: install定义及介绍
  • 菜鸟提问:一个类实现了一个接口,除了要定义接口的所有方法外,可不可以再添加其他方法?
  • java命名空间javax.swing接口rootpanecontainer的类成员方法: getrootpane定义及介绍
  • 急,请问如何修改网络接口eth为其它名称,如网络接口为abc0, abc1,要修改哪个配置文件?
  • java命名空间javax.swing.text接口highlighter的类成员方法: install定义及介绍
  • 有人在Linux下用过1394接口的设备吗?怎么装载一个1394接口的存储设备呢?
  • java命名空间java.lang.reflect接口parameterizedtype的类成员方法: getrawtype定义及介绍
  • 请问高手:EJB中的远程接口、本地接口、HOME接口的联系与区别是什么?应用时应注意哪些问题?
  • java命名空间javax.management接口descriptorread的类成员方法: getdescriptor定义及介绍
  • C#学习笔记之接口与基于接口的工厂模型
  • java命名空间javax.lang.model.element接口typeparameterelement的类成员方法: getgenericelement定义及介绍
  • 请问为什麽在J2ee中客户端(测试时)用jndi定位enterprise bean的时候,可以把远程接口实例化?接口不是不可以生成对象的吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3