返回信息流1、如果父类中没有无参和有参的构造方法,那么在子类中创建对象,会默认执行父类中的无参构造方法,但父类中没有声明无参构造方法啊
2、如果父类中有一个有参构造方法,那么子类中一定也要有个有参构造方法?
这是一条镜像帖。来源:北邮人论坛 / java / #48065同步于 2016/2/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
[问题]构造方法
qqpp3939
2016/2/27镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
1、父类如果没有显示声明构造方法的话会有人默认的无参构造方法。然后我没记错的话子类构造对象的时候不会调用父类的构造方法,除非显示写上super(),当然这个可能是我记错了
2、这个真不清楚,试试看吧
子类构造对象得时候一定会调用父类的构造方法,java的子类实力化会内置一个父类对象,这个父类对象的构建就是通过父类构造方法实现的
【 在 Lamperouge 的大作中提到: 】
: 1、父类如果没有显示声明构造方法的话会有人默认的无参构造方法。然后我没记错的话子类构造对象的时候不会调用父类的构造方法,除非显示写上super(),当然这个可能是我记错了
: 2、这个真不清楚,试试看吧
发自「贵邮」
关于2,不一定,但是父类如果显式声明了构造方法,子类构造方法一定要选一种实现父类对象的构建,而且必须是子类构造方法中的第一句话,至于子类构造方法有没有参数,根据你的情况决定,比如成员值固定,你可以直接super(xxx,xxx)指定参数,要是要变,xxx就从子类构造方法作为参数传进来
【 在 qqpp3939 的大作中提到: 】
: 1、如果父类中没有无参和有参的构造方法,那么在子类中创建对象,会默认执行父类中的无参构造方法,但父类中没有声明无参构造方法啊
:
:
: ...................
发自「贵邮」
原来是这样,明白了
【 在 dongshilang (小白日番谷) 的大作中提到: 】
: 子类构造对象得时候一定会调用父类的构造方法,java的子类实力化会内置一个父类对象,这个父类对象的构建就是通过父类构造方法实现的
没有声明构造方法编译器会自动添加无参构造方法
子类构造方法在实例化时会先调用父类的构造方法,注意是调用而且是先调用,而调用一般用super,这样新创建的子类对象中会有父类的功能,如果没写super而且父类中没有无参构造方法并且自己定义了有参构造方法,那么会出错,太绕了,反正调用父类构造方法的时候参数得对应上,一句话应该够了
【 在 qqpp3939 的大作中提到: 】
: 1、如果父类中没有无参和有参的构造方法,那么在子类中创建对象,会默认执行父类中的无参构造方法,但父类中没有声明无参构造方法啊
:
:
: 2、如果父类中有一个有参构造方法,那么子类中一定也要有个有
: .........
发自「贵邮」
1.如果父类中没有定义其它的有参构造方法,也没有无参构造方法(即父类中只有默认的构造方法),那么子类中会默认执行父类的默认的无参构造方法。
2.如果父类中有有参构造方法而无无参构造方法,那么子类在初始化的时候必须显示的调用任一有参构造方法,否则编译错误。
3.我猜的。