已有259人关注
类的继承 中 方法调用问题?
发表在Java答疑区 2017-06-17
是否精华
版块置顶:

class Parent {

Parent() {

System.out.println("调用父类Parent()的构造方法");

}


public void doSomething() {

System.out.println("调用父类Parent中的doSometing()方法");

}

}


class Subparent extends Parent {

Subparent() {

super();

super.doSomething();

}


}


public class Subroutine extends Subparent {

Subroutine() {

System.out.println("调用子类Subroutine()的构造方法");

}


public static void main(String[] args) {

new Subroutine();


}

}

输出结果:

调用父类Parent()的构造方法

调用父类Parent中的doSometing()方法

调用子类Subroutine()的构造方法

问题:加粗部分调用的父类Parent()构造方法的输出怎么没有了?

实例化子类的过程中,自动调用父类的构造方法,为什么少了一次?

我觉得输出结果应该是下面这样:

调用父类Parent()的构造方法//实例化父类Parent()构造方法

调用父类Parent()的构造方法//实例化父类Subparent()构造方法中的super()调用的构造方法

调用父类Parent中的doSometing()方法//实例化父类Subparent()构造方法中的super.doSomething()的调用

调用子类Subroutine()的构造方法//实例化子类Subroutine()的构造方法。


分享到:
精彩评论 1
David
学分:914 LV7
TA的每日心情
最后的冲刺
2017-07-15 10:46:08
2017-06-19
沙发

程序的执行顺序(在new Subroutine()打断点,使用Debug As逐步运行):

new Subroutine() → Subroutine()构造方法 → Subparent()构造方法中的super() → Parent()构造方法 → Parent()构造方法中的输出语句 → Subparent()构造方法中的super.doSomething() → Parent()的doSomething()方法 → Parent()的doSomething()方法中的输出语句 → Subroutine()构造方法中的输出语句。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照