理解:接口回调与向上转型的动态绑定,是一样的效果。
即:从实现了某接口的对象,得到对此接口的引用,与向上转型为这个对象的基类,实质上效果是一样的。这些对象都可以调用基类型提供的方法,对于接口来说就是回调接口中的方法,对于父类来说就是调用父类的方法。当然在向上转型的情况下,还牵涉到子类重写(Override)父类方法的情形。
注意:向上转型,子类对象会遗失跟父类不同的方法。只能保留重写的方法,来动态绑定。
参考原文地址:
http://blog.csdn.net/carolzhang8406/article/details/6700799
接口回调是什么
接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。
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.
分享到:
相关推荐
2. 动态绑定:接口回调使得自定义View在运行时可以动态绑定点击事件,而无需在XML布局文件中预定义。这对于需要在运行时根据业务逻辑调整交互方式的场景非常有用。 3. 复用性:通过接口回调,自定义View可以复用同...
3. **设置回调**:在自定义EditText的初始化或绑定到布局时,将Activity或Fragment实例传入自定义EditText,作为接口回调的实现。 ```java public class CustomEditText extends EditText { private ...
在Android开发中,接口回调是一种常见的组件间通信方式,它允许一个组件(通常是一个Activity或Fragment)通过定义接口并由另一个组件实现来传递数据或触发事件。本文将深入探讨三种常见的接口回调方法,并结合...
本文主要讨论了在安卓应用程序开发中,如何使用接口回调实现列表控件适配器和Fragment之间的通信。首先,文章简要介绍了列表控件和Fragment在安卓开发中的重要性,然后比较了Fragment和列表控件适配器各种数据通信...
本Demo主要讲解如何在RecyclerView中添加单击事件并实现接口回调,以实现更灵活的数据交互。 首先,我们需要在布局文件中添加RecyclerView控件。在XML布局文件中,RecyclerView可以通过`android.support.v7.widget....
本教程将详细讲解如何使用自定义的SwipeRefreshLayout实现这一功能,并通过封装通用Adapter及接口回调来处理子Item的子View点击事件。 首先,我们来看SwipeRefreshLayout。它是一个可以包裹其他布局,如ListView或...
在本教程中,我们将深入探讨如何在RecyclerView的条目中添加按钮,并实现点击事件,然后通过接口回调在Activity中处理这些事件。 首先,我们要创建RecyclerView的布局。在XML文件中,为每个条目定义一个布局,其中...
- 调用bindService(),传递Intent和服务回调接口(IBind)。 - Android系统查找匹配的Service并启动它(如果尚未启动)。 - Service的onBind()方法被调用,返回一个实现了IBinder接口的对象,这个对象代表了...
`ServiceConnection`接口定义了两个回调方法:`onServiceConnected`和`onServiceDisconnected`。当服务成功绑定时,系统会调用`onServiceConnected`,在这个方法中,你可以通过`IBinder`对象访问服务中的方法。 ```...
将Activity与Service绑定是一种常见的通信方式,尤其在需要在后台运行任务且需要与用户界面保持交互时。本教程将重点讲解如何在Kotlin环境中实现Activity与Service的绑定、启动、解绑以及关闭过程。 1. **Service的...
在Android应用开发中,"本地服务(绑定与未绑定)"是一个关键的概念,它涉及到应用程序如何在后台执行长时间运行的任务而不干扰用户界面。本地服务(Local Service)是Android系统提供的一个组件,允许开发者创建长...
- **实现回调**: 客户端应用程序实现回调接口,并在与服务建立连接时提供该实现。 - **服务调用回调**: 当服务需要向客户端发送数据时,它可以通过客户端提供的回调接口实例调用相应的方法。 **4. 示例项目...
当DLL需要与外部程序进行交互时,可以通过提供回调函数接口来实现。这种方式使得DLL能够在特定条件下调用外部程序提供的函数,从而实现更复杂的功能。 #### 回调函数的注意事项 1. **内存管理**:当回调函数被调用...
首先,我们需要创建一个回调函数,它通常有一个特定的函数原型,以便能够与调用它的函数接口匹配。例如,在Windows API中,`LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)`就是一个...
依赖属性具有通知机制,当其值发生变化时,可以触发相关的回调,更新UI。 3. **数据模板(DataTemplate)**:数据模板用于定义如何显示数据对象。通过数据模板,你可以根据数据类型的不同,定制UI的呈现方式。 4. ...
需要提供一个Intent来指定要绑定的Service,以及一个ServiceConnection对象,用于处理绑定成功或失败的回调。 5. **连接到Service**:在ServiceConnection的onServiceConnected()方法中,我们可以获取到Binder对象...
# 用户在浏览器中完成登录授权后,回调URL会收到授权码 # 使用授权码换取访问令牌 access_token_request = { "client_id": "your_msn_client_id", "client_secret": "your_msn_client_secret", "code": "received...
2. **绑定服务**:使用`bindService()`方法进行服务绑定,并提供一个`ServiceConnection`对象来处理绑定成功或失败的回调。 ```java bindService(intent, connection, Context.BIND_AUTO_CREATE); private ...
5. 使用Service:现在你可以在`onServiceConnected()`回调中调用Service的方法,进行通信。 三、Service的通信机制 1. Binder:`Binder`是Android系统提供的进程间通信(IPC)机制,使得客户端可以在自己的进程中...
可以指定窗口的标题、大小、弹出页面路径、保存操作的函数名以及保存后回调函数。 - 使用了`layer.open`方法来创建一个弹出层,其中包括保存和取消按钮,点击保存会执行指定的保存函数。 - 为了防止弹出层重复打开...