黑马程序员技术交流社区

标题: 关于继承的一点疑惑 [打印本页]

作者: 沈子豪    时间: 2013-3-4 21:40
标题: 关于继承的一点疑惑
本帖最后由 沈子豪 于 2013-3-4 23:27 编辑

子类继承父类时候默认先调用父类的无参构造方法,是不是不管子类有无构造方法,或者构造方法无论有参无参都先调用父类的无参?
作者: lzw123451    时间: 2013-3-4 21:44
是的,除非你指定调用父类有参构造函数
作者: 谢洋    时间: 2013-3-4 22:56
不管怎么样,子类一定会调用父类的构造自身的初始化,则否是无法通过编译的;
子类对象内部都会有一个父类对像,如果不这样,那也不叫继成
作者: amen0205    时间: 2013-3-4 23:17
林明华 发表于 2013-3-4 21:52
是不是不管子类有无构造方法,或者构造方法无论有参无参都先调用父类的无参?
不是这样子的。每个类中,如 ...

这个3中的最终会调用到父类无参的构造器怎么理解?

若是父类显示定义了有参和无参的构造函数,而且子类的构造函数中也指明了调用父类有参构造函数,那就不会调用无参的构造函数了啊
作者: 黑马17期-闫东东    时间: 2013-3-4 23:31
首先子类中的方法必须调用父类的构造方法,如果父类中只有一个有参的构造方法,你在子类的构造方法必须调用,而且是子类的构造方法第一句话必须是调用父类的有参构造方法,否则编译器会提示错误的。如果父类中有无参的构造方法,你没有写的话会自动调用的
作者: amen0205    时间: 2013-3-4 23:40
林明华 发表于 2013-3-4 23:35
子类不调用父类无参构造器情况只有一种,就是父类中显式定义了有参构造器,而没有无参构造器,此时在子类 ...

父类中有无参和有参构造方法,子类如果没有写的话会隐含super();  但如果子类手动添加了super去访问有参构造方法的话是可以的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2