目录 一、接口定义

二、接口的特点

三、使用接口的好处

四、接口回调

五、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) {

//我们自己写的实现方法

}

});

接口(系统框架)是系统提供的,接口的实现是我们自己实现的,这样可以达到接口统一,实现不同的效果。

系统在不同的状态“回调”我们的实现类,来达到接口和实现的分类

多方法接口回调_浅析接口定义和接口回调相关推荐

  1. java接口课程_用java定义一个接口,用于查询课程

    定义一个类Stu,包括如下属性:学号.姓名.性别.专业.课程,实现以下方法:每个属性的获取和定义,要求至少包含一个构造函数.定义一个接口类,定义方法qcc()用来查询课程.编写一... 定义一个类 S ...

  2. lacp可以在access接口吗_【基础】防火墙接口类型全介绍

    物理接口 1) 防火墙支持的接口可以是二层接口或者三层接口 2) 二层接口:portswitch 3) 三层接口:undo portswitch 逻辑接口 1) VT(virtual template ...

  3. 抽象类和接口设计_如何设计类和接口

    抽象类和接口设计 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导您 ...

  4. java请求接口示例_用示例解释Java接口

    java请求接口示例 介面 (Interfaces) Interface in Java is a bit like the Class, but with a significant differe ...

  5. 其他系统 对外接口设计_外观模式:统一接口 VS.暴露细节

    什么是接口--java语言中的接口 Java类中定义的所有public型的方法都可以被简单地视为该类对外提供的接口. 抽象类中public型的抽象方法,可以被看成是整棵继承树的对外接口. 对于Java ...

  6. postman 获取接口参数_使用Postman管理API接口

    为了使服务端开发的API接口管理正规化流程化,所以,使用Postman这款神器来管理我们的接口,以方便后续项目的迭代开发. 一.什么是Postman Postman最基础的功能就是发送http请求,支 ...

  7. 华为设备接口视图_华为设备的交换机接口类型介绍及配置

    博文大纲: vlan是什么? 华为交换机的三种接口模式: 1.access模式. 2.trunk模式. 3.hybrid模式. hybrid接口的工作原理. 华为设备的各种接口模式应用场景及配置. 一 ...

  8. java接口设计_如何设计Java的接口?

    在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击 这时候,就可以使用接口来实现这个效果. 接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们就一定能够进行物理攻 ...

  9. 如何开发rest接口服务_如何简化网络请求接口开发

    日常开发中,需要大量和后端对接接口,很容易写出大量的模板代码,比如把对接口的请求放到组件内,或者虽然有数据访问层,但是有大量 get,post 方法的调用,传参的字符串拼接,异常处理等等,有些逻辑是可 ...

最新文章

  1. ubuntu下eclipse的svn插件使用javahl
  2. pc817光耦参数_光耦在电子电路中有什么作用?关键参数有哪些?一起了解一下...
  3. 文件共享服务器imac,iMac怎么在网络上共享设备windows文件夹和服务 | MOS86
  4. dell服务器怎么看硬件状态,从DELL 2950和DELL R710看服务器硬件
  5. zabbix配置mysql监控_【zabbix】zabbix配置MySQL监控
  6. 【MySQL】MySQL 如何查看sql语句执行时间和效率
  7. springboot学习笔记03 整合JPA
  8. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_4_Stream流的特点_只能使用一次...
  9. 频域卷积定理的证明 乘积的傅里叶变换等于分别做傅里叶变换的卷积乘1/2pi
  10. 星环大数据助银行数据仓库全面升级
  11. 探索性测试ET(Exploratory Test)
  12. 如何实现 iOS 短视频跨页面的无痕续播?
  13. 高端化自欺欺人,国产手机又一块遮羞布被扯下,事实是被苹果碾压
  14. 【渝粤教育】电大中专电商运营实操 (4)作业 题库
  15. 为什么没人再提勤劳致富了?
  16. 办理北京居住证需要的材料
  17. 我的javaSE学习笔记
  18. Tesla Model S的设计失误
  19. JavaSE_语法基础
  20. 获取Excel单元格存储日期格式数据

热门文章

  1. poj 3370 Halloween treats
  2. 【讨论】初学者拿到2440、6410 等开发板应该怎么学习?
  3. maven添加外部jar,以及springboot打包
  4. 机器学习-贝叶斯网络
  5. vSphere Esxi5.1 创建共享磁盘
  6. Wince6.0应用开发:一、平台搭建
  7. 创建服务factory和service方法的区别
  8. Ubuntu 下安装 输入法
  9. C语言基础教程读书笔记2(第二章常量、变量、类型转换)
  10. 虚拟化技术--桌面虚拟化(VDI)