多方法接口回调_浅析接口定义和接口回调
目录 一、接口定义
二、接口的特点
三、使用接口的好处
四、接口回调
五、Android中的接口回调机制
一、接口定义
接口通常以interface来修饰。
public interface Animal{
void eat(String param);
}
接口名:Animal 接口中定义的方法eat(String param)
二、接口的特点:
1:接口没有构造方法,不可实例化,可结合多态进行使用(接口 对象=new 对象() )
2:接口中的每个变量隐式指定为 public static final。
3:接口中的每个方法都是隐式抽象的,默认指定为 public abstract
4:接口里不能包含普通方法
5:子类继承接口必须实现接口里的所有成员方法,除非子类也是抽象类
6:接口支持多继承。
7:当一个类实现接口的时候,要实现接口中所有定义方法。否则这个类要被定义为抽象类。
(抽象类的特点:
1:成员属性必须不能是 private(私有) 修饰符修饰
2:成员方法可包含普通方法(虚方法)和abstract(抽象)修饰的成员方法
3:子类可选择性的重写虚方法,必须实现父类的所有抽象方法)
三、使用接口的好处:
例如:某公司需要做一款统计老人日常生活的APP。要求必须统计老人每天的吃的食物,步行距离,睡眠时间。该APP要求有Android版和iOS版。架构师定义了MethodAll接口。
public interface MethodAll{
void eat(String food);
void walk(double distance);
void sleep(int time);
}
1.使代码规范性
Android 程序员和iOS程序员都继承该接口,二者开发出来的App就都具备吃的食物,步行距离,睡眠时间这三个必要功能。(倘若不定义接口,二者各干各的,最终的结果不一定满足领导要求必须统计吃的食物,步行距离,睡眠时间的需求,有可能二者中有人马虎,少实现了一种功能)
2.扩展性
现在领导突然觉得Android用户群体比较大,想统计一下Android用户老人每天的睡眠时间。iOS的用户群体少就保持原样。这个时候只需要Android程序员修改他的sleep实现方法即可,无需改动接口。
接口的使用既可以保证大部分用户的共同需求,又可以满足大部分用户中的部分用户的特定需求
四、接口回调
接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行。比如常见的OnclickListener事件,点击的时候才执行对应的响应先定义三个要素A(客户端),B(服务端),约定(接口)
A有一个问题不会,他去问B。B说我现在没想出来,等我想到答案了再告诉你。然后A该干嘛干嘛,坐等B告诉他答案。在接收到B答案的那一刻,A再解决那个刚才他不会的问题。
常见的OnclickListener事件中,button就是那个A,用户是B.只有用户B点击了按钮,才会告诉A我点击你了。然后执行A的回调方法。
第一步。定义一个接口(也就是常说的回调接口)
public interface CallBack{
void getResult(String str);
}
第二步。B类中需要编写的(也即很多博客中所谓的接口帮助类)
public class B{
// 直接把CallBack 当参数传入,
// 在需要使用的时候直接传入,然后调用接口方法就可以了。
// 避免了,忘记在调用的类中setCallBack(set值)
//doCallBackMethod可以任务是一个网络请求或其他耗时操作。也就是B在想答案所花费的时间
public static void doCallBackMethod(CallBack callBack){
try {
//睡三秒,模拟B思考答案
Thread.sleep(3*1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
String result= "这就是B想到的答案";
callBack.getResult(result);
}
第三步 。具体调用类,及通过接口传递数据,会掉到那个地方
public class A extends Activity implements CallBack{
B.doCallBackMethod(A.this);
public void getResult(String string ){
Log.e("tag","拿到了B想到的答案"+string);
}
}
五、Android中的接口回调机制
以常见的OnclickListener事件为例
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//我们自己写的实现方法
}
});
接口(系统框架)是系统提供的,接口的实现是我们自己实现的,这样可以达到接口统一,实现不同的效果。
系统在不同的状态“回调”我们的实现类,来达到接口和实现的分类
多方法接口回调_浅析接口定义和接口回调相关推荐
- java接口课程_用java定义一个接口,用于查询课程
定义一个类Stu,包括如下属性:学号.姓名.性别.专业.课程,实现以下方法:每个属性的获取和定义,要求至少包含一个构造函数.定义一个接口类,定义方法qcc()用来查询课程.编写一... 定义一个类 S ...
- lacp可以在access接口吗_【基础】防火墙接口类型全介绍
物理接口 1) 防火墙支持的接口可以是二层接口或者三层接口 2) 二层接口:portswitch 3) 三层接口:undo portswitch 逻辑接口 1) VT(virtual template ...
- 抽象类和接口设计_如何设计类和接口
抽象类和接口设计 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导您 ...
- java请求接口示例_用示例解释Java接口
java请求接口示例 介面 (Interfaces) Interface in Java is a bit like the Class, but with a significant differe ...
- 其他系统 对外接口设计_外观模式:统一接口 VS.暴露细节
什么是接口--java语言中的接口 Java类中定义的所有public型的方法都可以被简单地视为该类对外提供的接口. 抽象类中public型的抽象方法,可以被看成是整棵继承树的对外接口. 对于Java ...
- postman 获取接口参数_使用Postman管理API接口
为了使服务端开发的API接口管理正规化流程化,所以,使用Postman这款神器来管理我们的接口,以方便后续项目的迭代开发. 一.什么是Postman Postman最基础的功能就是发送http请求,支 ...
- 华为设备接口视图_华为设备的交换机接口类型介绍及配置
博文大纲: vlan是什么? 华为交换机的三种接口模式: 1.access模式. 2.trunk模式. 3.hybrid模式. hybrid接口的工作原理. 华为设备的各种接口模式应用场景及配置. 一 ...
- java接口设计_如何设计Java的接口?
在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击 这时候,就可以使用接口来实现这个效果. 接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们就一定能够进行物理攻 ...
- 如何开发rest接口服务_如何简化网络请求接口开发
日常开发中,需要大量和后端对接接口,很容易写出大量的模板代码,比如把对接口的请求放到组件内,或者虽然有数据访问层,但是有大量 get,post 方法的调用,传参的字符串拼接,异常处理等等,有些逻辑是可 ...
最新文章
- ubuntu下eclipse的svn插件使用javahl
- pc817光耦参数_光耦在电子电路中有什么作用?关键参数有哪些?一起了解一下...
- 文件共享服务器imac,iMac怎么在网络上共享设备windows文件夹和服务 | MOS86
- dell服务器怎么看硬件状态,从DELL 2950和DELL R710看服务器硬件
- zabbix配置mysql监控_【zabbix】zabbix配置MySQL监控
- 【MySQL】MySQL 如何查看sql语句执行时间和效率
- springboot学习笔记03 整合JPA
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_4_Stream流的特点_只能使用一次...
- 频域卷积定理的证明 乘积的傅里叶变换等于分别做傅里叶变换的卷积乘1/2pi
- 星环大数据助银行数据仓库全面升级
- 探索性测试ET(Exploratory Test)
- 如何实现 iOS 短视频跨页面的无痕续播?
- 高端化自欺欺人,国产手机又一块遮羞布被扯下,事实是被苹果碾压
- 【渝粤教育】电大中专电商运营实操 (4)作业 题库
- 为什么没人再提勤劳致富了?
- 办理北京居住证需要的材料
- 我的javaSE学习笔记
- Tesla Model S的设计失误
- JavaSE_语法基础
- 获取Excel单元格存储日期格式数据