java中,子类初始化时一定要调用父类的构造方法,不调用行吗?

java中,子类初始化时一定要调用父类的构造方法,不调用行吗?

谢谢!!

一定会调用,原因是这样的。
因为子类继承了父类,那么就默认的含有父类的公共成员方法和公共成员变量,这些方法和变量在子类里不再重复声明。如果你初始化子类的时候,不初始化父类,那么你通过子类调用父类方法或变量的时候会出现什么情况呢?当然就是抛异常阿!所以,Java虚拟机会在你初始化子类的时候默认的初始化子类的父类。而且是一层一层的往上递进!
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-19
不行的 你想一下,子类继承了父类的各种属性,而构造方法则相当于把父类给实例化出来,如果你子类实例化的时候不调用父类的构造方法,相当于子类压根就没有父亲,又怎么谈得上继承呢?

另外,抽象类是例外,因为抽象类是没有构造方法的,无法实例化
第2个回答  2007-10-16
如果父类的构造方法是带参数的,而且没有无参数的构造方法,那么在子类的构造方法中必须显式地调用父类的构造方法。
如果父类的构造方法是无参数的,那么在子类中写不写都可以,不写的话会隐式地调用。
第3个回答  2007-10-14
随便你怎么样,它都会调用.因为在继承之后的构造方法里面,默认的会调用,你如果不写,只是你看不到而已
第4个回答  2019-06-17
如果需要调用superclass的带参构造器,那么就需要在子类构造器里显式调用(比如:super(括号里是参数))
那么对于superclass的无参构造器呢,当我们没有任何对于父辈构造器的显式调用时,系统就会自动帮在第一行加一个super(); (就是调用父辈的无参构造器)
那么,因为只有没有任何显式调用时才会自动调用无参构造器,所以我想到的是 可不可以在superclass里添加一个没有任何代码的空的带参构造器 让子类主动去调用它,这样看起来就会像 没有调用父类的构造方法一样了。
(不知道这样做可不可以 求路过的大佬多多指教

java中,子类初始化时一定要调用父类的构造方法,不调用行吗?_百度知 ...
一定会调用,原因是这样的。因为子类继承了父类,那么就默认的含有父类的公共成员方法和公共成员变量,这些方法和变量在子类里不再重复声明。如果你初始化子类的时候,不初始化父类,那么你通过子类调用父类方法或变量的时候会出现什么情况呢?当然就是抛异常阿!所以,Java虚拟机会在你初始化子类的时候默...

子类为什么要调用父类的构造函数
在Java中,子类的构造过程中,必须 调用其父类的构造函数, 所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况. 构造方法是new一个对象的时候,必须要调的方法,这是规定,要new父类对象出来,那么肯定要调用其构造方法,所以 第一个规则:子类的构造过程中,必...

java中 子类 一定要调用父类的所有构造方法吗?
不是~~但是至少应该调用一个!也可以全部调用的!任意一个类都拥有构造器的!如果你自己没有写,系统会给你加上一个默认的,没有参数的构造器,如果你自己写了,系统不会给你加上去的!因为继承就是要把父类的东西拿给自己,并在此基础上扩充自己!子类在调用构造器的时候,不知道父类拥有什么,所以...

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

java中子类自动继承父类的无参构造方法吗?
首先子类中的方法必须调用父类的构造方法,如果父类中只有一个有参的构造方法,你在子类的构造方法必须调用,而且是子类的构造方法第一句话必须是调用父类的有参构造方法,否则编译器会提示错误的。如果父类中有无参的构造方法,你没有写的话会自动调用的 ...

为什么在实例化子类的对象的时候会调用先调用父类的构
因为子类继承父类之后,获取到了父类的内容(属性\/字段),而这些内容在使用之前必须先初始化,所以必须先调用父类的构造函数进行内容的初始化.

java继承时,实例化子类,是否会默认调用父类构造方法
完整的状态中。试想,如果没有这个约束,那么子类的某个继承自父类的方法可能会使用到父类中的一些变量,而这些变量并没有进行初始化,从而产生一些难以预料的后果。也因此,当一个类的构造方法是 private 时,它是不可被 extends 的,因为子类构造方法难以调用到这个父类的构造方法。

java关于子类和父类构造方法的关系,犯迷糊!!
1、父类中没有显式定义任何构造方法,此时父类中实际有一个默认的无参数构造方法。这时,在子类中显式定义任何构造方法时,可以不用使用super调用父类的默认方法。2、父类中显式定义了默认的无参数构造方法,那么子类可以定义任意的构造方法,而不必使用super调用父类的构造方法 3、父类中显示定义了...

JAVA中 子类与父类构造方法的关系 个人理解
子类必须申明一个构造方法(且含super的args),且方法里要首先调用super(args),否则报错。三、父类含 含参数的构造方法和无参的构造方法:此时子类可以选择性调用:可以无构造方法:仍会默认调用super()也可以有构造方法:其中会默认地调用super(),你也可以在开头加上这句,如果你不希望调用父...

在JAVA 中为什么在父类中定义了一个构造函数,而在其子类中却一定的要...
子类不一定非要写一个构造函数。(1)如果你有需要加入参数来构造一个类实例的话,那你就可以写一个,但是写前需要第一句是“super();”这是调用父类的构造方法。(2)如果你没有特定的要求,那就可以不写,java虚拟机会在编译的时候给你自动添加一个无参数的构造方法。下面是写构造方法的注意...

相似回答