构造器内部的多态方法的行为[Java编程思想]

 

class Glyph {
	void draw() {	print("Glyph.draw()");	}
	Glyph() {
		print("Glyph() before draw()");
		draw();
		print("Glyph() after draw()");
	}
}

class RoundGlyph extends Glyph {
	private int radius = 1;
	RoundGlyph(int r) {
		radius = r;
		print("RoundGlyph.RoundGlyph(), radius = " + radius);
	}

	void draw() {
		print("RoundGlyph.draw(), radius = " + radius);
	}
}

public class PolyConstructors {
	public static void main(String[] args) {
		new RoundGlyph(5);
	}
}

//output:
//Glyph() before draw()
//RoundGlyph.RoundGlyph(), radius = 0
//Glyph() after draw()
//RoundGlyph.draw(), radius = 5

你可能感兴趣的:(java)