今天在群里聊天 偶然看到一个朋友问关于继承的问题 毫不犹豫的回答 但是错了 已然忘记了子类调用父类的时候 是要调用父类无参构造函数
class Glyph {
Glyph() {
//step1
System.out.println("Glyph() before draw()");
//step2
draw();
//step3
System.out.println("Glyph() after draw()");
}
Glyph(int i) {
System.out.println("Glyph() before draw()" + i );
draw();
System.out.println("Glyph() after draw()" + i);
}
void draw() {
System.out.println("Glyph.draw()");
}
}
class RoundGlyph extends Glyph {
private int radius = 1;
//step4
RoundGlyph(int r) {
radius = r;
System.out.println("RoundGlyph.RoundGlyph(),radius = " + radius);
}
//step2
void draw() {
System.out.println("RoundGlyph.draw(),radius = " + radius);
}
}
public class PolyConstructor {
public static void main(String[] args) {
new RoundGlyph(5);
}
}