常用用法:回调方法接口,向上转型动态绑定,常量接口。

回调方法接口:

Java代码

public interface ICallback {

public void   func();

}

public class Caller {

ICallback callback;

public void doCallback() {

callback.func();

}

public void setCallback(ICallback callback) {

this.callback = callback;

}

}

public class MainClass {

public MainClass() {

}

public static void main(String[] args) {

Caller caller = new Caller();

caller.setCallback(new ICallback () {

public void func() {  System.out.println("dosth");   }

});

caller.doCallback();

}

}

=========================================================================

向上转型:

Java代码

interface People{

void peopleList();

}

class Student implements People{

public void peopleList(){

System.out.println("I’m a student.");

}

}

class Teacher implements People{

public void peopleList(){

System.out.println("I’m a teacher.");

}

}

public class Example{

public static void main(String args[]){

People a;             //声明接口变量

a=new Student();      //实例化,接口变量中存放对象的引用

a.peopleList();        //接口回调

a=new Teacher();     //实例化,接口变量中存放对象的引用

a.peopleList();       //接口回调

}

}

结果:

I’m a student.

I’m a teacher.

=================================================================================

常量接口就不举例了。举个回调接口在Android中的例子。

实例(对于Android界面上Button点击事件监听的模拟):

1.定义接口

Java代码

public interface OnClickListener {

public void OnClick(Button b);

}

2. 定义Button

Java代码

public class Button {

OnClickListener listener;

public void click() {

listener.OnClick(this);

}

public void setOnClickListener(OnClickListener listener) {

this.listener = listener;

}

}

3. 将接口对象OnClickListener 赋给Button的接口成员

Java代码

public class MyActivity  extends Activity{

Button button = new Button();

button.setOnClickListener(new OnClickListener(){

public void OnClick(Button b) {

System.out.println("clicked");

}  });

}

}

android java 回调方法接口相关推荐

  1. Java 回调 (Callback) 接口学习使用

    文章目录 Java 回调 (Callback) 接口学习使用 1.什么是回调(Callback)? 2.Java代码示例 2.直接调用 3.接口调用 4.Lambda表达式 推荐看我的InfoQ地址, ...

  2. Java回调方法详解

    回调在维基百科中定义为: 在计算机程序设计中,回调函数,是指通过函数参数传递到其他代码的,某一块可执行代码的引用. 其目的是允许底层代码调用在高层定义的子程序. 举个例子可能更明白一些:以Androi ...

  3. java 回调方法是什么意思_java什么是回调

    软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步调用.同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是 ...

  4. Java回调方法(CallBack)

    一.前言 在进行应用开发时,不同模块之间存在着相互调用的关系.调用的方式分为以下几种: 同步调用 fun(a)调用fun(b),fun(a)等待fun(b)执行完后再进行下一步. 同步调用会引起代码的 ...

  5. unity 动画原动画返回_Unity3D 动画回调方法

    最近发现很多coder.在用Unity开发游戏的时候都需要一个需求就是..动画播到某一帧就要干什么事情.而且希望能得到回调. 在unity里面的window菜单有个.Animation工具.打开它.然 ...

  6. 【Android】Java回调原理并结合Android源码进行理解

    回调机制是一种常见的设计模式,它把工作流内的某个功能按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据. 之前对于回调一直是一知半解,而且总是停留在C++的函数指针的理解之 ...

  7. Android:按键响应方式第一种onClick属性,第二种方法接口类,第三种方式匿名内部类,第四种方式Activity

    一.在xml 中设置按键的onClick 绑定的函数 新建一个工程 然后在相关的页面添加一个Button 运行一下 实际上,现在这个按键一,我们去运行的时候,他是没有任何的反馈的,我们按完它,他没有任 ...

  8. JAVA和Android的回调机制

    本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢 以 前不理解什么叫回 ...

  9. java 回调url_java开发之——[接口回调]

    一.回调的含义和用途 1. 什么是回调? 一般来说,模块之间都存在一定的调用关系,从调用方式上看,可以分为三类:同步调用.异步调用和回调.同步调用是一种阻塞式调用,即在函数A的函数体里通过书写函数B的 ...

最新文章

  1. map:erase删除元素之后迭代器失效的问题!(iterator not incrementable)
  2. php pdo 执行多条语句,php – 在pdo预处理语句中执行多插入或多个不同插入是更好/更快?...
  3. java nio 追加写文件_Java NIO在文件末尾追加数据
  4. android aar编程,AndroidStudio脚本命令指定AAR生成目录与版本号
  5. html在表单左上角显示文字,js+css实现增加表单可用性之提示文字
  6. ML.NET Cookbook:(10)如何使用模型做出一个预测?
  7. linux php自动执行_linux下实现定时执行php脚本
  8. java 去除 quot,JAVA去除web页面传入后台的特殊字符工具类 | 学步园
  9. tensorflow has no attribute logging
  10. Nodejs中Mongodb的基本使用
  11. matlab 几何布朗运动 股价,某股票价格遵循几何布朗运动
  12. 360极速浏览器调用selenium
  13. spring使用中applicationContext.xml文件头部声明
  14. explain 介绍
  15. html文件右键没有打开方式,一个文件打不开,点右键,怎么在打开方式中加入Word,Excel的打开方式,打开方式中有Word的打开方式?...
  16. 【Matlab】希腊字母
  17. jQuery超详细入门教程
  18. .Net Core MVC引入static静态变量到.cshtml页面
  19. iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present dismis
  20. 在sql执行横表转换过程中,出现特殊字符‘∞’

热门文章

  1. python classmethod知识_python基础知识讲解——@classmethod和@staticmethod的作用
  2. mysql 拼接sql批量执行_Mysql 学习笔记之 SQL 执行过程
  3. 两个超长正整数的加法c语言,二个超长正整数的相加
  4. shmmax单位_linux 内存管理——内核的shmall 和shmmax 参数
  5. 手绘线条一直画不直_我学素描,线条画不直怎么办啊?
  6. ‘fopen‘: this function or variable may be unsafe.
  7. TDD 与 CI 在 Python 中的实践
  8. rsync源目录写法的一点小细节
  9. 内核随记(三)--同步(2)【转】
  10. PHP开发如何实现多线程?