构造函数的主要作用是创建一个实例对象,分为无参与有参两种:
public A(){} 和 public A(int a) {}
一个构造函数可以使用this()调用同一个内中构造函数
使用super()调用父类的构造函数
重点:一个构造函数要么开始于this(),要么开始于super()。
class A {
public A() {
System.out.println("A--无参");
}
}
class B extends A {
public B() {
System.out.println("B--无参");
}
public B(int a) {
System.out.println("B--有参");
}
}
class C extends B {
public C() {
System.out.println("C--无参");
}
}
当我我们要new一个C对象时:
A--无参
B--无参
C--无参
最先执行的是A的无参构造参数,然后是B,最后是C,也就是说C的无参构造函数一开始执行时调用了super,B也一样
当我使用B的有参方法new一个B对象:
A--无参
B--有参
B的有参构造方法也一样要调用A的无参构造方法
说明:如果一个构造参数没有显示的调用this()或者super(),那么他会隐式的调用super(),也就是父类的无参构造方法,一直向上递归,直到Object
|
|