赞
踩
初学JAVA时总是搞不懂子类继承父类时方法调用的时序.今天又碰到这个问题打了简单的Log看出了其调用的时序.
- public class class1 extends class2{
- public void class1Method(){
- method1();
- }
-
- @Override
- public void method2() {
- //super.method2();
- Log.e("du","class1---->>>method2");
- }
- }
没有super.methord2(),时父类methord1()调用的是子类的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"); } }
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。