【第22期】观点:IT 行业加班,到底有没有价值?

java含参构造函数初始化

原创 2015年07月08日 17:01:10
</pre><pre name="code" class="java">package com.mejustdoit;

public class Component1 {
public Component1(int i) {
	// TODO Auto-generated constructor stub
	System.out.println("Component1"+i);
}
}

package com.mejustdoit;

public class Component2 {
public Component2(int i) {
	// TODO Auto-generated constructor stub
	System.out.println("COmponent2"+i);
}
}

package com.mejustdoit;

public class Component3 {
public Component3(int i) {
	// TODO Auto-generated constructor stub
	System.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 stub
	System.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");
}
}
运行结果如下:
Component11
COmponent22
Father69
component33
Component14
COmponent25
component36
Son
8ioew
下面说一下过程:进入main后new  Son(69);开始构造Son对象,进入Son的构造函数
public Son(int i) {
		super(i);
		// TODO Auto-generated constructor stub
		System.out.println("Son");
	}
 Son(int i)中的i被赋值69,然后往下执行到super(i);(我不知道是不是进入构造函数后调用父类的构造(要么是默认的Super()要么是Super(参数))方法,这里构造的父类的对象属于子类,然后创建对象后开始
初始化父类变量,输出
Component11
COmponent22
再初始化(执行)构造方法(是 默认的Super()要么是Super(参数)以下内容),输出
Father69
component33
然后就是初始化子类的变量,输出
Component14
COmponent25
component36

接着子类的构造方法(也就是 默认的Super()要么是Super(参数)以下内容)输出
Son
最后输出
8ioew
初始化的介绍可以参考<a target=_blank href="http://blog.csdn.net/dst111188/article/details/46754075">点击打开链接</a>
这里有些疑惑,希望可以交流:
是不是在创建对象时进入构造函数如果该类有继承关系就根据Super()/Super(参数)进入父类构造父类构造对象完成后按照初始化方法初始化子类对象(先初始化变量在初始化方法(包含构造方法))?





		





版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

java有参构造方法和无参构造方法

java有参构造方法和无参构造方法

java中静态初始化块,实例初始化块,构造函数区别

public class People { public static int num=0;//静态变量 String name; static//静态初始化块 { ...
  • yilip
  • yilip
  • 2014-12-17 20:51
  • 3819

java 静态变量 静态代码初始化块 构造函数的顺序

非静态的变量 在实例化对象时初始化 陷入死循环 所以内存溢出 结合上一个例子看出,初始化块{ }和非静态变量是按顺序执行,当把ADemo instance=new ADemo();放到初始化块{}...

java-构造函数执行初始化

       今天看到一段很神奇的代码,还没闹明白,先备份一个。        父类:        class SuperClass { public int mSuperX = 1; public SuperClass(){ setX(100); } public SuperClas

Java基础——构造函数、抽象类、父类构造方法初始化

构造函数: 1.在对象初始化时调用,方法名与类名完全相同; 2.构造函数可写,也可以不写;如果不写,系统将当做写了一个无参构造函数处理; 3.不能写返回值类型; 抽象类: 1.先继承,再使用;...

java笔记(07,类的初始化与构造函数详解)

  Last modified:2013-04-09 23:45:39 **********************************    <span styl
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)