下列有关子类继承父类构造函数的描述正确的是()。
【答 案】B
【分 数】1分
【选 项】
A、子类的对象创建时,先调用子类自己的构造函数,然后调用父类的构造函数
B、子类必须通过super关键字调用父类的构造函数
C、子类无条件地继承父类不含参数的构造函数
D、子类无法继承父类的构造函数
子类必须通过super关键字调用父类的构造函数?在子类继承父类的时候如果父类没有不带参数的构造函数或重写了不带参数的构造函数,子类在实例化的过程中不是自动调用父类的构造函数么?而且在java的继承当中子类是不可以继承父类的构造函数只能调用,不是么?
在你子类中 如果你没有定义构造函数的话 就会自动继承父类构造 如果你的子类想要扩展一下父类的构造函数 你就需要这么做
Class Parent{ void Parent(){ system.out.print(); } } Class Child extends Parent{ void Child(){ super(); //在此扩展你的子类 } }
如果你的子类中没有super()的话 就不会继承父类的构造 而是只执行你子类中构造的代码 但如果你的子类中不写构造的话 是自动继承父类构造的 懂了吧
自己是懂得,但是就是纠结这道题目的选项和答案~
@此殇丶狠深: 中国人就是喜欢玩文字游戏 , 什么面试的时候,精通,熟练.听着就烦
super中,貌似有超类
是楼主对题目会错意了,题目选项意思是如果你要调用父类的构造函数就需要使用super关键字,你对这个知识点的理解是对的
这个题有问题,在子类继承父类的时候,子类必须调用父类的构造函数。只不过是如果父类有默认构造函数,就像你说的那样,子类实例化时自动调用,但如果父类没有默认构造函数,即无形参构造函数,子类构造函数必须通过super调用父类的构造函数,所以严格的来说B也不算对。还有在java的继承当中子类是不可以继承父类的构造函数只能调用,这是肯定的。http://wenku.baidu.com/view/70d56daed1f34693daef3e3a.html这里边有比较完整的java有关构造函数的继承问题,希望对你有帮助
关于构造方法的事,在继承中,因为子类可能用到父类中的数据,所以在子类构造方法的默认第一句都是系统自动添加父类的空参构造方法,如果父类中没有空参构造,就要显式的调用父类有参的构造方法,在创建子类对象之前,必须调用父类的构造方法对父类中的数据进行初始化。如果父类没有空参构造,而你又没有在子类中显式的调用父类的有参构造,这时就会报错。所以,子类构造方法必须显式调用父类的构造方法。