当前位置: 代码迷 >> J2SE >> 构造方法的那些迷惑(编译器不是根据参数情况.)
  详细解决方案

构造方法的那些迷惑(编译器不是根据参数情况.)

热度:65   发布时间:2016-04-23 20:42:17.0
构造方法的那些疑惑(编译器不是根据参数情况...)
编译器不是根据参数情况,选择调用构造方法的吗?不是先SubClass(),然后再调用父类构造方法SuperClass(int n)吗,怎么会在19行报错呢(关SuperClass()什么事)?


------解决方案--------------------
引用:
Quote: 引用:

没错在你画红框框的地方,错在SubClass(int)这个构造方法上了。父类没有无参构造方法


方法不是在调用的时候才会执行吗?编译器整个执行过程中,就没有涉及到SubClass(int n)(没有调用过它),编译器怎么会执行不下去,会出现报错呢?
谁说没有涉及到?
编译器在生成字节码文件的时候,会将对里面的代码进行逻辑等检查,不管你运行不运行,你父类没有默认构造函数,子类的另一个构造方法,在编译的时候会试着去父类找,但是找不到,自然报错.

换句话说,如果出现这种错误,编译器都不去管,那么程序设计者会漏掉多少错误呢?
  相关解决方案