码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA继承关系中构造方法的调用次序详解

时间:2016-04-20 23:57:49      阅读:334      评论:0      收藏:0      [点我收藏+]

标签:java构造方法

/*定义父类Base1*/
public class Base1 {

	int a;// 定义一个变量

	/* 父类构造方法 */

	public Base1(int a) {
		this.a = a;
		System.out.println("调用了父类的有参构造方法!");
	}

	public Base1() {
		a = 1;
		System.out.println("调用了父类的无参构造方法!!");
		;
	}

	public static void main(String[] args) {
		Son1 s1 = new Son1();// 利用子类的无参构造方法创建子类对象s1
		Son1 s2 = new Son1(3, 4);// 利用子类的有两个参数的构造方法创建子类对象s2
		Son1 s3 = new Son1(5);// // 利用子类的有一个参数的构造方法创建子类对象s3
		s1.print();
		s2.print();
		s3.print();

	}
}

/* 定义子类Son1*/
class Son1 extends Base1 {
	private int b;

	/* 子类类构造方法 */
	public Son1() {
		b = 2;
		System.out.println("调用了子类的无参构造方法!!");
	}

	public Son1(int a, int b) {
		super(a);
		this.b = b;
		System.out.println("调用了子类的有两个参数的构造方法!");
	}

	public Son1(int b) {
		this.b = b;
		System.out.println("调用了子类的有一个参构造方法!");
	}

	public void print() {
		System.out.println("a: " + a + ",b:" + b);
	}
}


输出结果如下:

调用了父类的无参构造方法!!
调用了子类的无参构造方法!!
调用了父类的有参构造方法!
调用了子类的有两个参数的构造方法!
调用了父类的无参构造方法!!
调用了子类的有一个参构造方法!
a: 1,b:2
a: 3,b:4
a: 1,b:5


由此可以得出结论:子类对象在实例化时会默认先去调用父类中的相应的构造方法,之后再调用子类中的相应构造方法。


本文出自 “10628473” 博客,请务必保留此出处http://10638473.blog.51cto.com/10628473/1765977

JAVA继承关系中构造方法的调用次序详解

标签:java构造方法

原文地址:http://10638473.blog.51cto.com/10628473/1765977

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!