接口的理解(菜鸟借鉴)--很有趣的比喻

 

接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式,就如面向对象程序设计提供的多重抽象化。接口可能也提供某种意义上的在讲不同语言的实体之间的翻译,诸如人类与电脑之间。因为接口是一种间接手段,所以相比起直接沟通,会引致些额外负担。

人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口

比如,你要一个充气娃娃,这个充气娃娃有一个makeLove方法,你买这个娃娃就是冲着makeLove去的,你不关心它是哪国的娃娃,长得怎样。那么代码就体现为:

interface Chongqiwawa

{

public void makeLove(String name);

}

class Person

{

Chongqiwawa wawa;

public void setWawa(Chongqiwawa wawa){

this.wawa = wawa;

}

private String name;

public void makeLove(){

//调用wawa的makeLove方法

wawa.makeLove(name);

}

现在,你想和wawa那个,就可以这样用了:

main(){

Person you = new Person();

you.makeLove();

}

报错了吧?你怎么能跟虚的wawa那个呢?所以必须要买一个wawa.好吧,去逛成人店选购一个wawa.这里有日本娃娃,美国娃娃,先看看美国娃娃功能怎么样。

class USAWawa implements Chongqiwawa{

public void makeLove(String name){

System.output.println(name + " come on! a,a, a...");

}

}

好吧,你已经流口水了,一口价成交,然后带回家,迫不及待实践一下,代码体现为:

main(){

Person you = new Person();

Chongqiwawa wawa = new USAWawa();

you.setWawa(wawa); you.makeLove();

}

这时候你已经可以和娃娃水乳交融了。不久,你发觉厌倦了美国娃娃,想试下日本娃娃,再次来到成人超市,日本娃娃makeLove功能实现如下:

class JapanWawa implements Chongqiwawa{

public void makeLove(String name){

System.output.println(name + " yemede! a,a, a...ganbade...");

}

}

OK,你直接丢下一堆钞票一句不用找就抱回家了,马上进入主题:

main(){ Person you = new Person();

//获得实际的wawa

Chongqiwawa wawa = new JapanWawa();

you.setWawa(wawa);

you.makeLove();

}

看见了吗,只需改动一行代码,你就实现了娃娃的切换,得到不同的makeLove感受,其他代码都不用改。 OK,停止 YY,回到主题。 这里的Chongqiwawa 对应于 ActionListener,你要实现actionListener接口就相当于实现一个美国娃娃或日本娃娃,然后你addActionListener,就相当于给系统提供一个wawa,系统只要在产生相应事件时调用接口的actionPerformed方法,就相当于你在饥渴时调用makeLove方法,你知道有这个方法即可,不用关心他是哪来的和怎么实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值