子类必然会调用父类的构造方法。
要不然是你显式调用,要不然是Java自动调用。
如果父类有不带参数的构造方法,或者父类没有任何构造方法(也就是说有缺省构造方法),那么子类可以不显式调用,子类会自动调用super();
如果父类有带参数的构造方法,却没有不带参数的构造方法,那么如果子类没有显式调用父类构造方法,那么编译会报错。
如
class A {
public A(String name) {
}
}
class B extends A {
public B() {
//如果不显式调用父类构造方法,编译会报错。
}
}
子类默认调用父类的无参构造,就算删除super();也一样调用,如果不想调用父类的无参构造必须写super(形参列表);传默认值即可。如父亲构造器的成员变量是基本数据类型的整数如int,就可以这么写super(0);
父类另写一个特别的构造,专为这样的子类
不可以不调用父类构造方法。
子类不调用弗雷德构造方法,那还继承父类干什么,直接写一个类就可以了