问答详情
源自:9-7 Java 中的 super 的使用

请大神指点一下,为什么super() 方法 只能是放在子类的构造方法中第一条语句位置 ,而其他位置则不可以......

请大神指点一下,为什么super() 方法 只能是放在子类的构造方法中第一条语句位置 ,而其他位置则不可以......???

提问者:菲尔活该 2016-01-24 23:37

个回答

  • 全栈港
    2016-03-27 16:21:41

    你不写默认是在第一行系统有会加上的。  创建子类对象时,调用子类构造方法之前会先调用父类构造方法

    如果你不写第一行,默认你是可以写一个继承过来的属性赋值的,尽管你认为你可以不这样写,但是系统为了以防万一有人这么干,所以super要在第一行,如果不在第一行,你写了个继承来的属性,那这时候没调用super,还没那个属性呢。 因为都是实例属性,必须先有实例,才能使用。
    JAVA规定了super()要写在第一行,不写第一行会要报错!

  • 一条小咸鱼
    2016-02-05 16:23:52

    构造子类,必须先构造父类,语句又是顺序执行的,所以放在第一位

  • qq_科_1
    2016-01-25 00:49:20

    构造方法是先执行父类,后执行子类的~super是父类方法!所以只能放在子类的构造方法中第一条语句位置 ,而其他位置则不可以