super();
在调用子类的构造器的时候,如果没有显示的写出 super(); ,那么,编译器会在佛那个加上 super(); 无参构造器
如果想调用父类的有参构造器,那么,必须显示的调用,编译器不会默认加上;
创建子类对象的过程就是从底层的基类开始往上,一层层的调用构造方法;
super(); super(参数); 都必须放在方法的第一个语句中;
代码:
package com.java1995;
public class A {
A(){
System.out.println("调用A的无参构造方法");
}
A(int a){
System.out.println("调用A的有参构造方法");
}
}
class B extends A{
B(){
super();
System.out.println("调用B的无参构造方法");
}
B(int a){
super(a);
System.out.println("调用B的有参构造方法");
}
}
class C extends B{
C(){
System.out.println("调用C的无参构造方法");
}
C(int a){
super(a);
System.out.println("调用C的有参构造方法");
}
}
测试代码:
package com.java1995;
public class Test {
public static void main(String[] args){
//C --> B --> A
C c=new C(1);
}
}