Activityがactivityを継承した後に親で使用するthisは誰のインスタンスですか
ActivityがBaseActivityを継承した後、親クラスでthisを使用します.これは子クラスactivityのインスタンスです.
BaseActivity
MainActivity
MainActivityでは親の構造メソッドは書き換えられていませんが、親BaseActivityのonResumeメソッドで使用されるthisもMainActivityのインスタンスオブジェクトです.
BaseActivity
package com.example.test01;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class BaseActivity extends Activity {
private String TAG = "BaseActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate");
}
@Override
protected void onResume() {
super.onResume();
Toast.makeText(getApplicationContext(),
this.getClass().getSimpleName(), Toast.LENGTH_LONG).show();
}
}
MainActivity
package com.example.test01;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends BaseActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "onCreate");
}
}
MainActivityでは親の構造メソッドは書き換えられていませんが、親BaseActivityのonResumeメソッドで使用されるthisもMainActivityのインスタンスオブジェクトです.