初学JAVA时总是搞不懂子类继承父类时方法调用的时序.今天又碰到这个问题打了简单的Log看出了其调用的时序.
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");
}
}
没有super.methord2(),时父类methord1()调用的是子类的method2()方法.
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.methord2()时,父类methord1()先将自己的method2方法走完再将子类的method2方法走完.
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