日期:2014-05-20  浏览次数:20757 次

关于super()方法的使用
public class Basic implements Info { 
private String name ;
 private int age; 
public Basic() {
 super();
 }
请问接口不是没有构造吗,那上面代码的super()方法是调用谁的构造,是Object的吗?
这是调用父类的父类的构造方法吗?

------解决方案--------------------
当然是父类的
------解决方案--------------------
所有的类的共同父类都是Object,所以这时候的super()是Object的咯
------解决方案--------------------
调用的是缺省的父类Object的空构造方法
------解决方案--------------------
接口不会继承Object的,如果你的base类实现了接口,但是没有继承任何的类时,super调用的就是Object里面的构造方法,这是你不写,虚拟机也会帮你加上的。如果有父类,不管是class 还是abstract class 这样的话都是调用的父类的构造方法。。。
------解决方案--------------------
Object是Basic的直接父类,不存在父类的父类。
Info是接口,不是Basic的父类。
------解决方案--------------------
是缺省的new Object()的
------解决方案--------------------
应该就是Object,自己想弄明白就设个断点调试一下结果就出来了…呵呵
------解决方案--------------------
Object是根目录