荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Lg (创造人生的传奇), 信区: Java
标  题: Re: 就是这篇啊
发信站: 荔园晨风BBS站 (Wed Nov 14 12:29:03 2001), 转信

【 在 kid (以一种平静的心情来灌水!) 的大作中提到: 】
我不是高手,对这个类的继承理解也不是很透彻,这里只是说说我的想法。
当获取子类Extension的实例时,它会调用相关的构造函数。并且如果这个构造
函数没有显式调用父类的构造函数,那么它会缺省调用super(),所以它先调了
Base(),因为子类Extension已经覆盖了add()的实现,所以Base()里面的add()
实际上也是执行子类的实现。这样i=2, 然后调用了Extension()里面的add(2),
i = 6;最后就是22。

:    哪位高手个解释
: class Base {
:         int i;
:         Base() {
:                 i = 0;
:                 add(1);
:         }
:         void add(int v) {
:                 i =i + v;
:         }
:         void print() {
:                 System.out.println(i);
:         }
: }
: class Extension extends Base {
:         Extension() {
:                 add(2);
:         }
:         void add(int v) {
:         i = i+ v*2;
:         }
: }
: public class Poly {
:         public static void main(String args[]) {
:                 bogo(new Extension());
:         }
:         static void bogo(Base b) {
:                 b.add(8);
:                 b.print();
:         }
: }
:   结果是22,为什么啊?


--
不退缩,即使有日我会跌倒,不退避,痛得更深攀得到更高。

icq: 70670666
Email: gang_l@21cn.com & gang_l@hotmail.com
Homepage: 重新制作...

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 203.93.19.1]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店