android 对接口回调的理解

本人小白,在这里浅谈一下对接口回调的理解,纯属个人见解,有不对的地方欢迎大神指点。


先看一下定义:

接口回调是指:
可以把使用实现了某一接口的类创建的对象的引用,赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。

看定义好像有点难以理解,有点枯燥,下面我用我自己的方法解释一下。

在这里,接口就相当于老板,实现接口的类就相当于员工。

我们先看一下老板接口
android 对接口回调的理解_第1张图片

Boss.interface

public interface Boss {
    void build(String think);
}

我们可以看到,方法build()表示老板给员工一个修建的任务,参数think表示老板提出了自己的大致想法,至于具体实现呢,当然是要靠员工了!

在哪里实现呢,当然是在我们的员工类里。

android 对接口回调的理解_第2张图片

为了更形象表示回调,这里我把员工类写在MainActivity中

class Employer implements Boss{

    private static final String TAG = "MainActivity" ;

    @Override
    public void build(String think) {
        Log.d(TAG,think);
    }
}

很明显员工类继承了老板类,相当于员工承接了老板的想法,并把这个想法具体实现写在了企划书上。
android 对接口回调的理解_第3张图片

企划书有了,那么就开始建楼吧!

android 对接口回调的理解_第4张图片

public class MainActivity extends AppCompatActivity {

    private Boss person = new Employer();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        person.build("盖一座12层的楼房!");
    }
}

运行一下,看一下我们构建的“楼房”

这里写图片描述
android 对接口回调的理解_第5张图片

很雄伟!

完整的MainActivity代码

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private Boss person = new Employer();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        person.build("盖一座12层的楼房!");
    }
}

class Employer implements Boss{

    private static final String TAG = "MainActivity" ;

    @Override
    public void build(String think) {
        Log.d(TAG,think);
    }
}

从上面的例子可以看出,接口为我们提供了方法,然而方法的具体实现却是在我们自己的类中的,当我们在我们自己的类中声明了接口的对象并调用其方法时,就相当于调用了我们自己实现的方法,这就像老板提供想法,员工执行老板的想法,然而老板想法的具体实现是员工自己完成的

以上纯属个人见解,有误的地方希望大神指教与批评。

你可能感兴趣的:(android 对接口回调的理解)