java接口,接口回调

0、 java 接口概念

    一直对 java 接口概念比较模糊,因为平时的学习相对简单,没有用上,所以就很模糊。最近想用了,却发现搞不懂。所以想练习一下,加深对 java 接口的理解。

    java 接口概念: java 接口是一种抽象的类型。里面定义了方法的名字,但是没有实现。

interface Animal {   

    public void eat();    

    public void travel();

}

“接口感觉就是一些类似的事物共有的域或方法,就像有一个接口 Animal,里面有个方法eat,然后你每一个动物的类,都去实现这个接口,因为每个动物都有各自的饮食方法,这样就增加了代码的复用性,不要再每一动物类里都要重新想一个名字来定义 eat。——来自“百度知道、菜鸟教程”

1、接口的作用

    但是我认为上面的解释只给出了 java 接口中很小很小的作用,或者说不能体现“接口”这两个字的含义。关于接口,我是这样理解的,举一个比较形象的例子:小明数学比较好,可以计算两数相加,其方法为 add(int a, int b); 小红就不行了,数学比较差,自己做不来。但是数学老师又给小红布置了数学作业,而且明天必须要交作业。假如你是小红,你会怎么办?当然是求助小明啊!让小明来帮小红做作业。虽然小明数学好,但是小红求助小明的话小明会愿意帮小红吗?要是小明不愿意帮小红而且还鄙视小红,小红得多尴尬啊。

class XiaoMing {    

    private int add(int a, int b) { 

        // 小明很聪明,知道怎么算,但是这个方法是私有的,不告诉其他人是怎么算的

        return a + b;    

    }

}

class XiaoHong {        

    private int add(int a, int b) {        

        // 小红就比较笨啦,看到问题脑子一片浆糊。。不知道怎么算       

        return ??;        

    }

    public int write() {

    //    都不会算啊,怎写得出答案嘛

        return ??;

    }

}

    这是已经深夜 22:00 了,小红终于拉下了脸面,通过 QQ 向小明发起了求职。没想到小明倒是懂得怜香惜玉,还赶紧安慰小红说“我愿意帮你”。因为时间紧迫,小明已经没有时间教小红怎么做了,他对小红说道:“我给你一个接口,你告诉我题目,我直接返回给你答案”。说完,小明赶紧定义了一个接口。

interface Helper {

    public int output(int a, b);

}

    小明定义好了接口,那么接口中的方法谁来实现呢?当然是小明啊,是时候表演真正的技术了。

class XiaoMing implements Helper{            

    private int add(int a, int b) {            

        // 小明很聪明,知道怎么算,但是这个方式是私有的,不告诉其他人是怎么算的                return a + b;     

    }

    @Override

    public int output(int a, int b) {

        // 小明在接口中调用自己的计算方法,然后返回计算结果

        return add(a, b);

    }

}

    小明实现了这个接口,赶紧告诉小红,并教小红如何使用。

class XiaoHong {           

    // 小红为了使用小明的接口,定义了一个接口变量

    private Helper helper;

    // 并且通过传入的 helper 实例化

    public void setHelper(Helper helper) {

        this.helper = helper;

    }

    private int add(int a, int b) {               

        // 小红有了 helper, 告诉 helper a 和 b 的值,让 helper 返回结果               

        return  helper.output(a, b);     

    }

}

    所以,小红要做的事就是把 helper 设置成小明,从而通过小明给出答案

public class Test1 {

    public static void main(String[] args) {

        XiaoMing xiaoMing = new XiaoMing();

        XiaoHong xiaoHong = new XiaoHong();

        xiaoHong.setHelper(xiaoMing);

        int result = xiaoHong.add(1, 2);

        System.out.println(result);

    }

}

输出结果:3

    小红并没有计算的能力,但是却可以给出运算结果,这就是接口的作用。所以,接口可以用在这个情况:

    1、功能模块 B 想要使用功能模块 A 的功能,那么 A 可以给出一个接口,让 B 来调用。

    以上就是我对 JAVA 接口的一种理解。

2、 JAVA 接口回调

    还不理解,就是 return 吗?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容