java接口的回调_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 吗?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值