子类对象构造时,只能调用父类无参的构造方法?
好问题,问我去百度了下,这么说的,试了一下,确实可以
如果你是想在子类的构造函数中调用父类构造函数,则需要在子类的构造函数的函数体第一行(注释语句除外)使用:super(参数列表)的方式调用,该参数列表与父类有参构造函数声明的参数列表一致,如果你不是在子类构造函数中调用,则无法直接调用父类构造函数,这时创建一个父类对象(通过你想调用的有参父类构造函数创建),就间接调用了该构造函数。
我是这么理解的:因为构造方法是对类对象的属性进行操作的,你使用有参数的构造方法即是表示的确需要一个对象,并且对其属性经行操作。然而在我们使用子类对象时,必须要构造父类对象,但是我们并不使用父类对象。所以谈不上对其进行赋值等等操作,更何况有些类根本没有属性,怎么调用有参数的构造方法。