主动型VS被动型API
主动还是被动都是相对于基类来讲的,如果是基类定义且主动来调用子类那么这个API就叫主动API.如果基类的的API被子类主动的调用那么这个API就叫被动API
API这个名词,有3个密切关联的动词:
定义(Define)
实现(Implement)
呼叫(Invoke or Call)
根据这3个角度把API分为主动和被动两种.
理解:被动型API应该是父类不会让子类进行修改或者复写的API
主动型API应该是父类不清楚子类需要怎么做,让子类自己去做的API
上面的理解也可以从语法上来讲主动型是抽象函数或者虚函数/纯虚函数。而被动型的API应该是不需要复写或者父类里面实现的函数(C++,父类实现的函数的从道理上来子类是不应该复写的)。
可以理解为系统有自己的一个流程,那么app只需要实现父类里面的hook函数,一切的流程都让父类来调用。
Task extends Runnable
new Thread(new Task()).start()
class Task extends Thread;
thread = new Task();
thread.start()
class TaskThread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("run.........");
}
}
public class test4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread thread = new TaskThread();
thread.start();
}
}