一、源码:其中部分注释是测试过程中添加的
class SuperClass{
    private int n;
    /*
    SuperClass(){
        System.out.println("SuperClass()");
    }
    */
    SuperClass(int n){
        System.out.println("SuperClass("+n+")");
        this.n = n;
    }
}
class SubClass extends SuperClass{
    private int n;
    
    SubClass(int n){
        //super(300);
        System.out.println("SubClass("+n+")");
        this.n = n;
    }
   
    SubClass(){
        super(300);
        System.out.println("SubClass()");
    }
}
public class TestSuperSub{
    public static void main(String[] args){
    //    SubClass sc1 = new SubClass();
        SubClass sc2 = new SubClass(400);
    }
}

二、测试的几种情况:有些没有写结论,希望相互交流
/*
--前提:在父类和子类中分别含有无参构造函数和有参构造函数
1.在主函数中定义一个子类变量(无参),执行子类中的无参构造函数之前先执行父类的构造函数
a.子类中没有写调用父类的构造函数,则默认调用父类中的无参构造函数。
b.子类中调用父类的无参构造函数,则执行父类中的无参构造函数。
c.子类中调用父类的有参构造函数,则执行父类中的有参构造函数。

2.在主函数中定义一个子类变量(有参),执行子类中的有参构造函数之前先执行父类的构造函数
a.子类中没有写调用父类的构造函数,则默认调用父类中的无参构造函数。
b.子类中调用父类的无参构造函数,则执行父类中的无参构造函数。
c.子类中调用父类的有参构造函数,则执行父类中的有参构造函数。

--结论:上述编译成功

--前提:在子类中含有无参构造函数和有参构造函数,在父类中只含有有参构造函数
1.在主函数中定义一个子类变量(无参),执行子类中的无参构造函数之前先执行父类的构造函数
a.子类中没有写调用父类的有参构造函数
--------------------------------------------------------------------------------------
G:\0_2012相关资料\8_JAVA\1_Project>javac TestSuperSub.java
TestSuperSub.java:16: 错误: 无法将类 SuperClass中的构造器 SuperClass应用到给定类
型;
        SubClass(int n){
                       ^
  需要: int
  找到: 没有参数
  原因: 实际参数列表和形式参数列表长度不同
TestSuperSub.java:22: 错误: 无法将类 SuperClass中的构造器 SuperClass应用到给定类
型;
        SubClass(){
                  ^
  需要: int
  找到: 没有参数
  原因: 实际参数列表和形式参数列表长度不同
2 个错误
=========================================================================================
b.子类中调用父类的有参构造函数
-------------------------------------------------------------------------------------
G:\0_2012相关资料\8_JAVA\1_Project>javac TestSuperSub.java
TestSuperSub.java:16: 错误: 无法将类 SuperClass中的构造器 SuperClass应用到给定类
型;
        SubClass(int n){
                       ^
  需要: int
  找到: 没有参数
  原因: 实际参数列表和形式参数列表长度不同
1 个错误
=========================================================================================

2.在主函数中定义一个子类变量(有参),执行子类中的有参构造函数之前先执行父类的有参构造函数
a.子类中没有写调用父类的有参构造函数
--------------------------------------------------------------------------------------
G:\0_2012相关资料\8_JAVA\1_Project>javac TestSuperSub.java
TestSuperSub.java:16: 错误: 无法将类 SuperClass中的构造器 SuperClass应用到给定类
型;
        SubClass(int n){
                       ^
  需要: int
  找到: 没有参数
  原因: 实际参数列表和形式参数列表长度不同
1 个错误
=========================================================================================
b.子类中调用父类的有参构造函数
-------------------------------------------------------------------------------------
--编译成功

*/