子类可以同时继承父类的有参构造函数和无参函数吗,继承了无参函数还会再继承有参函数吗?

如题所述

不会。子类的构造方法中默认调用父类的无参构造方法。如:public 子类(){ super(); ..........} super()这句可以省略不写,但不能说没有。
当要调用父类的有参构造函数时,此时子类构造方法须显式写明 super(参数),无参的将会被替换。
理解不了,记住一点:.子类的构造方法,需将父类的构造方法写到第一句。如果同时调用无参和有参,将不满足此条件。(第一句)
调用父类有参和无参的解决办法:父类的构造方法可以重载,子类的当然也可以,把子类构造方法第一句换了就行。
注意:本人觉得不能用“继承”这个字眼,应该是调用。为什么?因为子类继承父类,只是继承其公有的属性和方法。私有的,构造继承不过来。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-13
定义的Sub的无参构造方法需要调用父类的无参构造方法。把子类Sub的无参构造方法注释掉,那就正确了。证明了子类显示调用父类带参构造函数时,系统还会自动调用父类的无参构造函数是正确了.
第2个回答  2016-01-05
我用的C# 不会继承构造方法. 但是子类是可以调用的
相似回答