目录
1、接口的定义
定义位置
接口内容
2、接口的使用
正常实现接口
接口当做函数参数
匿名实现接口
3、OPPO便签接口具体分析
总结一下:
1、接口的定义
定义位置
可以写在类中,但注意现在接口名字是 类名.接口名
可以单独写在一个文件
接口内容
无具体实现的函数,但是有参数和返回值
参数由实现接口的类中传入,返回值通过调用接口方法获取
不懂没关系,接着往下看
2、接口的使用
正常实现接口
跟继承一样,重写接口方法
calss Student : ExecutorProgressListener{
override fun onExecutorComplete(action: Int,
selectedNotes: MutableSet<String>?):void{
//重写接口方法
}
overrided fun onMoveFolderComplete(currentFolderGuid: String,
destFolderGuid: String,
selectedNotes: MutableSet<String>?):void{
//重写接口方法
}
}
接口当做函数参数
- 通常定义一个私有化接口成员变量
- 通过函数传参,成员变量接收外部接口mExcutorProgressListener
- 这里外部接口mExcutorProgressListener可以在它的方法内调用接口方法
- 而成员变量listener可以在此类任何方法中调用
private MenuExecutor.ExecutorProgressListener mExecutorProgressListener;
public void setMenuExecutorListener(MenuExecutor.ExecutorProgressListener listener) {
//持有外部接口
mExecutorProgressListener = listener;
//调用接口方法,下面两个在这个方法体内是一样的
mExecutorProgressListener.onExecutorComplete(action,selectedNotes);
onExecutorComplete(action,selectedNotes)
}
private void test(){
mExecutorProgressListener.onExecutorComplete(action,selectedNotes);
}
匿名实现接口
object表示一个匿名对象实现这个接口,且这个对象只会在此处使用
object :ExecutorProgressListener{
override fun onExecutorComplete(action: Int,
selectedNotes: MutableSet<String>?) {
//重写接口方法
}
override fun onMoveFolderComplete(
currentFolderGuid: String?,
destFolderGuid: String?,
selectedNotes: MutableSet<String>?) {
//重写接口方法
}
}
3、OPPO便签接口具体分析
记得这个函数吗?我们上面刚见过!
调用上面这个函数,需要一个实现了接口的变量,这里用匿名类实现接口,再重写接口方法