基类构造函数调用导出类的方法?
代码如下:
class Glyph{
void draw(){print("Glyph.draw()");}
Glyph(){
print("Glyph() before draw()");
}
}
class Round extends Glyph{
private int radius = 1;
Round(int r){
radius = r;
print("Round.Round(), radius = "+radius);
}
void draw(){
print ("Round.draw.radius = "+radius);
}
}
public class Poly{
public static void main(String[] args){
new Round(5);
}
}
输出结果是:
Glyph() before draw()
Round.draw(),radius = 0
Glyph() after draw()
Round.Round(),radius = 5
我想问一下,在基类Glyph的构造函数中调用了draw()函数,但这个draw()函数确实导出类的draw()函数,而不是基类中draw()函数,为什么呢?
------解决方案--------------------我来回答楼主的问题。
就是java中回溯的概念,先在子类(导出类)找是否有对应的方法,没有再去调用父类(基类)的方法