标签: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构造方法
原文地址:http://10638473.blog.51cto.com/10628473/1765977