JAVA 继承中子父类的构造方法
首先, 构造方法本身会有一个隐式的无参构造(默认):
1不写构造方法, 类中的第一行代码事实上有一个默认的无参构造(系统会隐式为你写好)publicclassStudent{
privateStringname;
// public Student() {} 隐式地 "写" 在这里, 你看不见
// Strudent 类中虽然没有写构造方法, 但相当于有上面的无参构造
// 只不过是隐式的, 你看不见
}
2只写带参构造方法, 相当于只有该带参构造方法(隐式的无参构造会被屏蔽无视掉, 视为无效)publicclassStudent{
privateStringname;
publicStudent(Stringname){
this.name=name;
}
// 此时原来 Strudent 类中的隐式的无参构造方法被屏蔽了, 无效了
// 类中只有带参构造
}
3若想同时拥有无参和带参构造, 必须显式地写出无参和带参构造方法publicclassStudent{
privateStringname;
publicStudent(){}
// 显式地将无参构造写出来
publicStudent(Stringname){
this.name=name;
}
// 若想 Strudent 类中拥有无参构造方法, 必须显式地写出来
}
进一步结合继承, 就需要考虑到子父类:
4在子类的构造方法 (无论是无参和有参) 中, 方法中的第一行代码事实上都隐式地包含了父类的无参构造方法
即: