Javaサブクラス、親メソッド呼び出しシーケンス
1361 ワード
初めてJAVAを勉強する時、いつも子類が親類を継承する時の方法の呼び出しのタイミングが分からない.今日またこの問題にぶつかって簡単なLogを打ってその呼び出しのタイミングを見た.
いいえmethord 2()は、親のmethord 1()が子のmethod 2()メソッドを呼び出す.
10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class2 ----methord1 10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class1---->>>methord2
superを加えるmethord 2()の場合、親methord 1()は、まず自分のmethod 2メソッドを終了するから、子のmethod 2メソッドを終了する.
10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class2 ----methord1 10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class2 ----methord2 10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class2 ----methord3 10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class1---->>>methord2
public class class1 extends class2{
public void class1Method(){
method1();
}
@Override
public void method2() {
//super.method2();
Log.e("du","class1---->>>method2");
}
}
public class class2 {
public void method1(){
Log.e("du","class2 ----method1");
method2();
}
public void method2(){
Log.e("du","class2 ----method2");
method3();
}
public void method3(){
Log.e("du","class2 ----method3");
}
}
いいえmethord 2()は、親のmethord 1()が子のmethod 2()メソッドを呼び出す.
10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class2 ----methord1 10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class1---->>>methord2
superを加えるmethord 2()の場合、親methord 1()は、まず自分のmethod 2メソッドを終了するから、子のmethod 2メソッドを終了する.
10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class2 ----methord1 10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class2 ----methord2 10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class2 ----methord3 10-14 10:31:14.123 1892-1892/com.android.library E/du﹕ class1---->>>methord2