java含参构造函数初始化

来源:互联网 发布:网络棋牌 编辑:程序博客网 时间:2024/06/06 00:06
</pre><pre name="code" class="java">package com.mejustdoit;public class Component1 {public Component1(int i) {// TODO Auto-generated constructor stubSystem.out.println("Component1"+i);}}package com.mejustdoit;public class Component2 {public Component2(int i) {// TODO Auto-generated constructor stubSystem.out.println("COmponent2"+i);}}package com.mejustdoit;public class Component3 {public Component3(int i) {// TODO Auto-generated constructor stubSystem.out.println("component3"+i);}}package com.mejustdoit;public class Father {Component1 c1 = new Component1(1);Component2 c2 = new Component2(2);public Father(int i) {// TODO Auto-generated constructor stubSystem.out.println("Father"+i);       Component3 c3 = new Component3(3);}}package com.mejustdoit;public class Son extends Father {Component1 c1 = new Component1(4);Component2 c2 = new Component2(5);Component3 c3 = new Component3(6);public Son(int i) {super(i);System.out.println("Son");}}package com.mejustdoit;public class PlayFatherandSon {public static void main(String[] args) {new  Son(69);System.out.println("8ioew");}}运行结果如下:Component11COmponent22Father69component33Component14COmponent25component36Son8ioew下面说一下过程:进入main后new  Son(69);开始构造Son对象,进入Son的构造函数public Son(int i) {super(i);// TODO Auto-generated constructor stubSystem.out.println("Son");} Son(int i)中的i被赋值69,然后往下执行到super(i);(我不知道是不是进入构造函数后调用父类的构造(要么是默认的Super()要么是Super(参数))方法,这里构造的父类的对象属于子类,然后创建对象后开始初始化父类变量,输出Component11COmponent22再初始化(执行)构造方法(是 默认的Super()要么是Super(参数)以下内容),输出Father69component33然后就是初始化子类的变量,输出Component14COmponent25component36接着子类的构造方法(也就是 默认的Super()要么是Super(参数)以下内容)输出Son最后输出8ioew初始化的介绍可以参考<a target=_blank href="http://blog.csdn.net/dst111188/article/details/46754075">点击打开链接</a>这里有些疑惑,希望可以交流:是不是在创建对象时进入构造函数如果该类有继承关系就根据Super()/Super(参数)进入父类构造父类构造对象完成后按照初始化方法初始化子类对象(先初始化变量在初始化方法(包含构造方法))?




0 0
原创粉丝点击