super()使用方法疑惑?
super()只能出现在子类的构造方法中,而且必须是子类构造方法中的第一条语句。请解释一下后半句 搜索更多相关的解决方案:
super
----------------解决方案--------------------------------------------------------
子类在创建对象时,总是先调用父类的某个构造方法,也就是说如果子类的构造方法没有显示的指明使用父类的哪个构造方法,子类就默认调用父类不带参数的构造方法。
因此,子类在创建对象时,总是先检查子类的构造方法里第一条语句,是不是super()语句,如果没有写super()语句,则自动调用父类不带参数的构造函数,如果把super()写在了第二句或者更往下,则编译器会认为没有显示指明使用哪个构造方法,就会默认调用父类不在参数的构造方法,而第二句或者更往下,又一个super(),这样就造成了调用了两次super()这是不允许的。
----------------解决方案--------------------------------------------------------
讲的好透彻!终于知道为什么了,以前我都是硬背的
----------------解决方案--------------------------------------------------------
顶2楼
----------------解决方案--------------------------------------------------------