当前位置: 代码迷 >> J2SE >> 考考你对super的理解(进进)
  详细解决方案

考考你对super的理解(进进)

热度:132   发布时间:2016-04-24 12:47:43.0
考考你对super的理解(高手进进进)
A. class A { } 
  class B extends A { } 
B. class A { } 
  class B extends A { B( ) {} } 
C. class A { A( ) { } } 
  class B { public B( ) {} } 
D. class Z { public Z(int) {} } 
  class A extends Z { } 

在不用软件的情况下你知道上面哪个会编译错误吗? 为什么


------解决方案--------------------
D. 没有缺省构造函数。
------解决方案--------------------
D.

创建一个子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数)
D中父类的是 public Z(int),子类将找不到无参数的构造函数,编译则会出错.

加个SUPER(int);就好了


------解决方案--------------------
加上super(int);恐怕红得更厉害喵~~``
------解决方案--------------------
肯定是d,子类得调用父类无参构造器,若父类中已经有有参构造器,则不会自动生成无参构造其
  相关解决方案