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);//父类有无参构造方法,可以省略
}
}