为什么 super(...)和this(...)调用语句不能同时在一个构造函数中出现?
为什么 super(...)和this(...)调用语句只能作为构造函数中的第一句出现?

解决方案 »

  1.   

    按照JAVA语法规定,在创建对象时,首先它要对成员变量进行默认初始化,然后进入构造函数绑定参数之后,进入构造函数内,这时如果有super()则执行super(),如果没有则看是否有this(),如里有执行否则往下执行函数内以下的程序。this和super的调用都必须是放第一句,所以不能同时调用,否则会冲突,只能选一个。至于为什么只能在构造函数的第一句出现是JAVA的语法规定。