關於子類構造方法中super關鍵字的使用記錄
java中,父類中有無參構造方法,子類中可以構建構造方法而無需新增super,如果父類中沒有無參構造方法,那麼子類中就必須構建父類中有的構造方法(需遵循先構造父類,再構造子類),並且相應的有參構造方法的第一行就得有super(x,y...),不然會編譯錯誤,有無參構造方法,子類中的有參構造方法就可以不加super(x,y...)。如下,
類Animal 新增 public Animal() {}後,子類中的super(name)和 super(a,b)就可以去掉。如果在父類沒有無參構造方法的情況下在子類中新增父類中沒有的構造方法,會編譯錯誤。
public class Animal {
public Animal() {
}
public Animal(String name) {
System.out.println(name);
}
public Animal(long weight,long length) {
System.out.println();
}
public Animal(String a,String b){
}
}
class Dog extends Animal {
private String name;
public Dog(String name) {
//super(name);//父類有無參構造方法,可以省略
this.name = name;
}
public Dog(String a,String b){
// super(a,b);//父類有無參構造方法,可以省略
}
}