super和this调用语句为什么不能同时在一个构造函数中出现?他们不能一起用,这只是使用规则,实际上他们不能一起用是有本质的原因的我只知道如果他们一起用的话会在后面的调用中起冲突,但我不清楚究竟是哪里起冲突,我自己也想了很久,实在想不出才来论坛上求教的! 好象他们是在对象初始化实例变量的过程中有冲突,但究竟在哪里,怎么样起冲突小弟实在是想不出了希望大家赐教点明`谢谢

解决方案 »

  1.   

    构造函数 肯定是要调用super的,而且仅能调用一次,但有直接和间接的调用:
    直接调用:
    隐式的就是调用super(),显式的必须是第一句.
    间接调用:
    调用本类的其他 构造函数, 也就是this,也必须是第一句,被调用的 构造函数 也必然间接或直接调用了super.(不管this 嵌套了几层,最后总有一个没有调用别的this的构造函数, 直接调用了super)如果 super和this调用语句同时在一个构造函数中出现,那么super就肯定被调用了两次以上,同一个object的只能调用一次构造函数.
      

  2.   

    一个人出生只能有一种方式
    一个人出生,他的父亲必须先于他出生
    一个人只能由一个父亲super是显式调用父亲的构造函数,
    this是采用它兄弟的出生方式,而兄弟出生也需要先让父亲出生结果,同时super, this,无论谁先谁后,都会导致父亲被构造了两次