美文网首页
35Chapter super 与this关键字图解 2020-

35Chapter super 与this关键字图解 2020-

作者: 琴匣自鸣 | 来源:发表于2020-01-26 17:10 被阅读0次

    代码执行是内存解析

        1.先加载至方法区,此时Zi.class{}内会自动加入一个 指向Fu.class{}的指向

        2.从方法区加载main方法进栈, 创建对象 Zi zi=new Zi();有地址指向堆内的0x666地址的对象.

        在堆内创建对象时先加载父类构造方法,然后再执行子类构造将父类构造完成的区域包裹起来

        3.执行zi.show()方法,从方法区找到方法然后show()方法进栈 int num=30为局部变量

        4.sout(this.num)为成员变量,此时通过this指向了堆内的对象,然后找到该对象的成员变量num

        5.sout(super.num)为父类变量,通过super找到0x666堆内的父类区域,然后找到父类的num

        6.执行zi.method(); 仍然先去方法区找到子类的method方法然后进栈,接着在子类method()方法里有 super.method() 意味着要执行父类的method()方法,那么去方法区Fu.class{}内找到父类的method()方法然后父类方法进栈,此时super.method()就指向了进栈的父类方法

        7.父类method()执行完毕,父类方法弹栈,接着子类method()执行完毕,子类方法弹栈以此类推,直到main方法弹栈结束

    相关文章

      网友评论

          本文标题:35Chapter super 与this关键字图解 2020-

          本文链接:https://www.haomeiwen.com/subject/omwjthtx.html