本帖最后由 ily521125 于 2013-12-5 20:54 编辑
继承中的构造器调用:
- 子类一定调用父类的构造器
- 子类默认调用父类无参构造器
因此在创建一个Demo()对象时,无论Demo类中有无构造方法,都会去调用Super中的构造方法,并继承了Super的成员属性i
如果Demo类中无构造方法即没有语句 public Demo(){ i+=5}; 则在创建Demo()对象时,默认调用Super类的构造方法,得到 i 的结果为2;
如果Demo类中有构造方法即有语句 public Demo(){ i+=5 }; 则在创建Demo()对象时,也会调用Super类的构造方法,此时代码相当- public Demo()
- {
- // Super(); 该语句是默认产生的去调用父类构造方法
- i+=5;
- }
复制代码
在调用父类构造方法后,i=2,就继续执行 i+=5 所以在完成Demo()对象创建后成员变量 i 结果是7
|