站内搜索: 请输入搜索关键词

当前页面: JAVA 编程资料牛鼻论坛Java & J2SE 技术区→谁能帮我解释一下接口?

谁能帮我解释一下接口?

发表新主题   回复此主题

第1楼 2005-11-29 10:55 wrwlove 写道:

谁能帮我解释一下接口?


谁能帮我解释一下接口?谢谢 !


第2楼 2013-08-31 12:44 Robot :

谁能帮我解释一下接口? 相关


第3楼 2005-11-29 16:10 ranchgirl 写道:

Re:谁能帮我解释一下接口?


Read this one, excellent explanation in Chinese, hehe

http://bbs.chinajavaworld.com/post/view?bid=20&id=120024&sty=1&tpg=1&age=-1


第4楼 2005-11-30 06:37 gason 写道:

Re:谁能帮我解释一下接口?


布知道你对电脑了解多少
主板上的PCI插槽就是现实中的接口
你可你把声卡,显卡,网卡都插在PCI插槽上,而不用担心那个插槽是专门插哪个的
原因是做主板的厂家和做各种卡的厂家都遵守了统一的规定
包括尺寸,排线等等
但是各种卡的内部结构是一样的么?答案必然是否定的!
我们来模拟一下:
interface PCI
{
  void start();
  void stop();
}
//这是接口,相当于主板上的PCI插槽


第5楼 2005-11-30 06:38 gason 写道:

Re:谁能帮我解释一下接口?


class NetworkCard implements PCI
{
  public void start()
  {
    System.out.println("Send...");
  }
  public void stop()
  {
    System.out.println("Network stop!");
  }
}
//网卡
class SoundCard implements PCI
{
  public void start()
  {
    System.out.println("Du du...");
  }
  public void stop()
  {
    System.out.println("Sound stop!");
  }
}
//声卡


第6楼 2005-11-30 06:40 gason 写道:

Re:谁能帮我解释一下接口?


class MainBoard
{
  public void usePCICard(PCI p)
  {
    p.start();
    p.stop();
  }
}
//主板调用接口的运行方法,也就是调用PCI的函数
public class Assembler
{
  public static void main(String[] args)
  {
    MainBoard mb=new MainBoard();
    NetworkCard nc=new NetworkCard();
    mb.usePCICard(nc);
    SoundCard sc=new SoundCard();
    mb.usePCICard(sc);
  }
}
//这是运行


第7楼 2005-11-30 06:44 gason 写道:

Re:谁能帮我解释一下接口?


接口就是给出一些没有内容的方法,到具体用的时候再由用的方法自己定义内容
要注意的是想用接口必须实现接口的所有方法
不知道这样将够不够通俗,呵呵。
你要是还不明白我再说更通俗的说法。。。。。


第8楼 2005-11-30 07:50 wrwlove 写道:

Re:谁能帮我解释一下接口?


完全听的明白,多谢各位指教。


第9楼 2005-11-30 11:01 跳进咖啡 写道:

Re:谁能帮我解释一下接口?


获益非浅啊
不错不错


第10楼 2005-12-01 05:14 liyan1234_ 写道:

Re:谁能帮我解释一下接口?


书上的例子我也看过了
这个例子很好


第11楼 2005-12-01 09:39 43520 写道:

Re:谁能帮我解释一下接口?


不错,通俗易懂


第12楼 2005-12-01 10:06 lang_net 写道:

Re:谁能帮我解释一下接口?


说的真好,高手.


第13楼 2005-12-02 11:14 不听流行的人 写道:

Re:谁能帮我解释一下接口?


解释的不错 对接口认识更深了 谢谢了


第14楼 2005-12-03 06:01 gason 写道:

Re:谁能帮我解释一下接口?


我不是什么高手
我学java才两周
只不过以前学过.net


第15楼 2005-12-07 05:12 SaintZealot 写道:

Re:谁能帮我解释一下接口?


[旧帖疑问]
我是刚刚学习java的大菜鸟,对于接口有个新的问题:
在上面所举的例子中,我发现即使不定义借口,各个类给出方法体,产生各自的行为,也可以实现相应的功能。那么,接口的意义到底在于什么地方呢?


第16楼 2005-12-08 03:34 gason 写道:

Re:谁能帮我解释一下接口?


你说得很对,即使不定义接口我们还是一样写代码,一样的做
可是企业级的开发可不是三两个人一天两天就能干完的
几百人月的项目出来了,一个小公司干不了,就要把软件拆开分到很多小公司做
那怎么能保证各个公司做的代码最后和到一起能像我们想得那样运行呢
这里接口就体现了巨大的作用!
我分给你的任务,我不管你内部具体怎么实现,只要你按着我给你定义好的接口写
到我要用的时候统一调用就不会出现众多人写的代码和不到一起去的情况
我这说的只是接口最浅显的用处,当然在编程中接口对于带代码的可重用性,安全性,
健壮性,可维护性等有着至关重要作用!
新名词“面向接口的编程”,去网上看看,很多讲得比较详细的


第17楼 2005-12-08 03:54 sunking5 写道:

Re:谁能帮我解释一下接口?


接口是一抽象的,它不能被直接实现或转化是吗?


第18楼 2005-12-09 08:48 littlesmile 写道:

Re:谁能帮我解释一下接口?


接口里可以定义属性的
但必须是常量
一般都是定义为static final 的。


第19楼 2005-12-15 02:28 sunking5 写道:

Re:谁能帮我解释一下接口?


通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系.
通过接口可以指明多个类需要实现的一组方法.
通过接口可以了解对象的交互界面,而不需要了解对象所对应的具体类.
上边是从一本书中看到的,不知道对各位是否有帮助.


第20楼 2005-12-15 05:21 sunac400 写道:

Re:谁能帮我解释一下接口?


gason解释的真的很形象阿 可以当教科书实例了


第21楼 2005-12-21 16:20 pjs 写道:

Re:谁能帮我解释一下接口?


我认为接口最大的作用就是实现上塑,可以当作数据类型来作用。
如:List l1= new LinkedList();
以后更改程序时很方便。


第22楼 2005-12-22 10:04 galaxyly 写道:

Re:谁能帮我解释一下接口?


我写了个关于接口的代码(这是我对接口的理解欢迎大家指正)在这里我们假设有A,B两个程序员要完成一件工作。
-----------------------------------------------------------
/*这里是AB两个程序员协商一个交接口,通过这个接口两人实现“通信”;
*/
interface interf{
  void show();  
}
----------------------------------------------------------
/*A代表A程序员,他实现了接口所定义的方法;
*/
class A implements interf{
    public void show(){
          System.out.println("hello world!");
      }
}
---------------------------------------------------------
/*B代表B程序员,他去调用A接口提供的方法;在这里他的调用方法需要传递一个接口的对象。
*/
class B{
      public void run(interf x){ //B程序员通过接口对象去调用A程序员提供的方法。
          x.show();
        }  
}
----------------------------------------------------------
/*主类,先实现一个A的对象,再实现B的对象,再将A的对象传递给B去调用
*/

class mainclass{
  public static void main(String[] args){
        A a=new A();
        B b=new B();
        b.run(a);
    }
}
----------------------------------------------------------


第23楼 2006-02-23 06:32 antony 写道:

Re:谁能帮我解释一下接口?


接口是一种规范,可以是个人的,可以是企业级的。上面举的PCI的接口很好,我觉得还有一个例子也不错,那就是我们生活中常用的插座,只要你是生产插座的,不管你是什么厂家,都要照GB来做,只要你是生产灯泡的,不管你的灯泡怎么美观,怎么实用,都要按GB来做接口,那么GB就是一种接口(企业级)。而企业级的接口规定了SPI和API 分别让服务商和程序员来实现。
gason所说的“在编程中接口对于代码的可重用性(封装体现的作用),安全性(JVM、同步锁),健壮性(这个要看JAVA设计模式了),可维护性(也是有关JAVA设计模式了)等有着至关重要作用!”


第24楼 2006-04-10 14:59 kingjinhe2002 写道:

Re:谁能帮我解释一下接口?


接口分为广义和狭义接口。这里只说JAVA的接口,是狭义接口。
接口是方法特征的集合。也是程序可扩展的保障。


第25楼 2006-04-15 19:10 rainytooo 写道:

Re:谁能帮我解释一下接口?


学了好多东西啊


第26楼 2006-11-07 11:51 shijiliren 写道:

Re: 谁能帮我解释一下接口?


接口就是常量和方法定义的集合(方法是没有实现的方法,不要是空方法混淆);
实现接口时方法可以全都实现,public类来实现;方法也可以不全部实现,但必须用抽象类来实现.


第27楼 2006-12-01 00:22 乐开了花 写道:

Re: 谁能帮我解释一下接口?


不好意思 我是一只翅膀受伤的小菜鸟(比菜鸟还菜的那种)


class B{
public void run(interf x){ /*不明白的地方在这里:“()”里面的“x”是一个接口对象把??就是(interf x) */
x.show();
}
}
----------------------------------------------------------
class mainclass{
public static void main(String[] args){
A a=new A();
B b=new B();
b.run(a); /*这里的a是一个A类的对象,A类实现了interf这个接口,但是a不是接口的对象阿??*/
}
}

可能问得很业余,请讲讲谢谢先


第28楼 2006-12-05 00:49 feihua317 写道:

Re: 谁能帮我解释一下接口?


好贴,收获多多!还有楼上的那个人的问题我也不太明白,请讲解一下!


第29楼 2007-02-15 14:23 wshong 写道:

Re: 谁能帮我解释一下接口?


好贴,顶下!!!


第30楼 2007-02-25 21:29 zhuqx1130 写道:

Re: 谁能帮我解释一下接口?


接口就像是虚而又虚的类,它只有方法的形式描述,没有任何实际内容;它也不包含任何实例变量,接口就是多重继承的替代品。
接口就是一个合同,一个约定。川菜标准就是一个接口。
接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法。


第31楼 2007-02-26 16:52 aichicai 写道:

Re: 谁能帮我解释一下接口?


接口是一个特殊的抽象类,在编程是要尽量使用借口,使用借口可以满足并行开发要求,并且接口是没有base class,并能够实现多重继承(java里没有多重继承)c++里有,有了接口,类实现后可以满足向上转型到多个接口,想想吧,没有父类的可以完全向上转型的东东,好爽啊


第32楼 2007-02-27 11:50 jy0025 写道:

Re:谁能帮我解释一下接口?


顶一个,通俗好解释


第33楼 2007-03-01 12:49 yzx3323 写道:

Re:谁能帮我解释一下接口?


在JAVA中
接口就是一系列按照某种规范编写好的代码
你不需要知道这个代码具体的编写情况
只要知道他的用途,拿来用就OK;````


第34楼 2007-03-01 19:18 delly_ya 写道:

Re: 谁能帮我解释一下接口?


好内容啊,比看书爽多了


第35楼 2007-03-14 14:41 xf01 写道:

Re: 谁能帮我解释一下接口?


还有一个问题,想问一下。就是,在接口里面,是不是应该定义一些标准的变量?比如,出生日期,定义为8位字符型?这样开发的时候就可以遵循这个标准来做了。


第36楼 2007-03-15 14:01 zhuang1983 写道:

Re: 谁能帮我解释一下接口?


接口有物理上的和软件上两类,具体来说,象pci是物理上的,而用关键字interface定义的是实现一定功能的函数!


第37楼 2007-03-18 00:55 camlelive 写道:

Re:谁能帮我解释一下接口?


qason的举例实在是太经典了。
一直以来对接口的使用都是含含糊糊的,看了这个例子后,真的是被你一下点开了。

接口隐藏实现的好处
接口在团对开发时的作用
接口在类与类、模块和模块间起到的作用
都一下子可以很通俗的理解了。

谢谢!万分感谢!


第38楼 2007-03-24 11:07 xiaxiaorui2003 写道:

Re:谁能帮我解释一下接口?


有点明白了,
多谢啊


第39楼 2007-03-24 15:22 duchuan20nn 写道:

Re: 谁能帮我解释一下接口?


接口就是只有定义没有实现的东东..要用的时候再来实现他.打个比方说就像是电脑后面的显示器接口一样,它只说了他能接上一个显示器.只有当接上显示器的时候它才能实现功能.


第40楼 2007-03-30 02:26 xiaxiaorui2003 写道:

Re:谁能帮我解释一下接口?


谢谢解释的这么详细,
现在我比较了解了,
现在该去练习了


第41楼 2007-03-30 12:29 sss798099 写道:

Re:谁能帮我解释一下接口?


我也是新人,我想问问gason写的关于PCI接口的调用,(PCI P)是不是实现了将PCI接口进行了实例化对象 生成了对象P啊?
我别的地方都能理解,这里有点不明白,求教!~
class MainBoard
{
public void usePCICard(PCI p)
{
p.start();
p.stop();
}
}
//主板调用接口的运行方法,也就是调用PCI的函数


第42楼 2007-05-22 15:02 apm7s 写道:

Re: 谁能帮我解释一下接口?


When I read the decreption said by the 3th floor,o.m.g,I feel I got the answer what I searched for such a long time.Thank you!Thank you!I just want to say thank you!!!


第43楼 2007-05-24 13:13 gkj 写道:

Re: 谁能帮我解释一下接口?


可以简单的说 所谓的接口就是一种规范,定义了方法名,却没有方法体,这是我的观点……


第44楼 2007-05-24 15:20 kgqq 写道:

Re: 谁能帮我解释一下接口?


不错不错,学不少东西


第45楼 2007-05-25 02:46 xxpyb 写道:

Re: 谁能帮我解释一下接口?


是个好贴,初学者,看了的确有很大收获,感觉论坛水平的确很高


发表新主题   回复此主题