java中子类如何不调用父类的构造方法

2024-11-19 16:42:01
推荐回答(5个)
回答1:

子类必然会调用父类的构造方法。
要不然是你显式调用,要不然是Java自动调用。

如果父类有不带参数的构造方法,或者父类没有任何构造方法(也就是说有缺省构造方法),那么子类可以不显式调用,子类会自动调用super();

如果父类有带参数的构造方法,却没有不带参数的构造方法,那么如果子类没有显式调用父类构造方法,那么编译会报错。


class A {
public A(String name) {

}
}

class B extends A {
public B() {
//如果不显式调用父类构造方法,编译会报错。
}
}

回答2:

子类默认调用父类的无参构造,就算删除super();也一样调用,如果不想调用父类的无参构造必须写super(形参列表);传默认值即可。如父亲构造器的成员变量是基本数据类型的整数如int,就可以这么写super(0);

回答3:

父类另写一个特别的构造,专为这样的子类

回答4:

不可以不调用父类构造方法。

回答5:

子类不调用弗雷德构造方法,那还继承父类干什么,直接写一个类就可以了