本帖最后由 shenzhentom 于 2014-12-01 15:50:00 编辑

解决方案 »

  1.   

    public class SyncManagerExt extends DefaultSyncManager {
    protected SyncManagerExt(Context context) {
    super(context);
         Log.v("AAA", "..... ....SyncManagerExt()...");

    @Override
    public int request(String config, String datas, boolean sync) {
         Log.v("AAA", "..... ....SyncManagerExt..request()...");
    return 1;
    }
    }
    public class  DefaultSyncManager {  
    private static DefaultSyncManager sManager;

    protected DefaultSyncManager(Context context)  
    {  
    Log.v("AAA", ".............DefaultSyncManager()....");
    }

    public DefaultSyncManager getDefault() {
         Log.v("AAA", "...........DefaultSyncManager..getDefault...."); 
    return sManager;
    }

    public  int request(String config, String datas) 
    {
    Log.v("AAA", "...........DefaultSyncManager..request...0..0..");
    return request(config, datas, false);
    }

    public int request(String config, String datas, boolean sync)   
    {
    Log.v("AAA", "...........DefaultSyncManager..request...0..1..");
    return 1;
    }
    }
      DefaultSyncManager mDefaultSyncManager;
      //SyncManagerExt mDefaultSyncManager;
      String config = "11111";
      String datas = "22222";
    public void onCreate(Bundle savedInstanceState) { Log.v("AAA", "........onCreate..");
    //mDefaultSyncManager = new DefaultSyncManager(null);
    mDefaultSyncManager = new SyncManagerExt(null); public void onClick(View v) {
    mDefaultSyncManager.request(config, datas, false);
    }
       }
    情况1:  以下这样点击时,直接调用 SyncManagerExt 中的 三个参数的request()
    public void onClick(View v) {
    mDefaultSyncManager.request(config, datas, false);
    }
    情况2:  以下这样点击时,调用 DefaultSyncManager 中的 二个参数的request() -->  SyncManagerExt 中三个参数的 request()
    public void onClick(View v) {
    mDefaultSyncManager.request(config, datas);
    }java 中,重载是多态性的表现方式之一.