构造器内部的多态方法的行为

    xiaoxiao2021-04-14  43

     下图为TKJ p163的程序,看书的时候一直不怎么理解他的运行结果。自己一步步debugger得到结果。

    在程序开始运行的时候,由于RoundGlyph是Glyph的子类,他会在构造器中首先调用父类的构造器,也就是进入到Glyph的构造器方法中。在Glyph中也有draw方法,并且在构造方法中调用了。但是可以通过debug看出这个时候的调用draw()对象(即this)是RoundGlyph。于是会动态绑定到RoundGlyph的draw()方法中,而且他将RoundGlyph初始化,由于是父类的构造器,故参数5未有传入。直接将成员初始化为默认值0,所以运行结果为:

    转载请注明原文地址: https://ju.6miu.com/read-670274.html

    最新回复(0)