展开全部
这种模式的代码多了去了,不是所有的代码都要你手动调用e68a843231313335323631343130323136353331333337386563才会执行。比如说线程的run方法,虽然你没有调用,但还是执行了run方法的方法体。为什么呢?因为虽然你不调用,但当你调用start方法的时候,它就会去执行这个run方法。
就好像你没有调用main方法,为什么程序能执行呢?因为虚拟机主动调用了它啊。
再举个例子:/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
App app = new App();
app.run(new Callback() {
public void run() {
System.out.println("我只重写不调用这个run方法");
}
});
}
public void run(Callback callback){
// 但是我调用了啊
callback.run();
}
}
interface Callback{
public void run();
}
因为程序从来就不是简单的几个类文件,很多细节都是隐藏不可见的。