Java子类,父类方法调用时序

本文通过示例代码解析了Java中子类继承父类时,不同情况下方法调用的具体顺序。展示了当子类覆盖父类方法时,是否使用super关键字调用父类方法对执行流程的影响。

初学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

转载于:https://my.oschina.net/SunnyTime/blog/592795

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值