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

来源:9-7 Java 中的 super 的使用

菲尔活该

2016-01-24 23:37

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

写回答 关注

3回答

  • 全栈港
    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是父类方法!所以只能放在子类的构造方法中第一条语句位置 ,而其他位置则不可以

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题