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有参构造方法和无参构造方法
  • high2011
  • high2011
  • 2016年03月03日 15:06
  • 16725

Java类成员初始化

Java类成员初始化与C++初始化的方式有很多不同,这部分知识相对比较基础,从而导致很多Java程序员对于Java类初始化机制不甚了了。下面就Java类成员初始化方式做一个梳理,希望对大家有益。 一...

Java中的构造函数与字段初始化顺序

在java中我们通过new ClassName()来创建对象,那么创建对象的整个过程是怎么样的呢?其实,在创建对象时, 首先虚拟机会为对象的所有字段分配内存, 包括哪些从父类继承来的字段, 而且会把这...

Java中的初始化块

在Java中,有两种初始化块:静态初始化块和非静态初始化块. 静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量,即static修饰...

scala学习笔记之 scala多重继承中的混入顺序和对象调用顺序说明

1>、scala中多重继承中方法的混入是由左往右的顺序。(见以下实例讲解) 2>、scala中多继承对象方法的调用顺序是从右往左。(见以下实例讲解) AOPScala.scala   trait Ac...

深入java (类)构造函数和对象创建的内存分配

之前的文章总结了java一些较为常用的关键字,现在我们要进入到类里面,总结类的特征(其中包括了内存和构造函数,gc垃圾回收),java中类的继承和初始化顺序(会涉及到ClassLoader),java...

Java 解惑:Random 种子的作用、含参与不含参构造函数区别

Random 通常用来作为随机数生成器,它有两个构造方法: Random random = new Random(); Random random2 = new Rand...

c#和java中的构造函数

  • 2011年12月03日 08:03
  • 287KB
  • 下载

构造函数继承.关于java

  • 2011年03月30日 21:35
  • 4KB
  • 下载

JAVA学习笔记之构造函数和初始化块

构造函数的功能:用来初始化对象的成员变量的方法。 一般初始化的都是实例变量。很少情况下给静态变量初始化 构造函数是不写返回值的。 创建对象是调用构造函数将对象的成员变量给初始化啦。 定义构造函数的要义...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java含参构造函数初始化
举报原因:
原因补充:

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