Mega Code Archive

 
Categories / Java Tutorial / Class Definition
 

Constructors and polymorphism dont produce what you might expect

abstract class Glyph {   abstract void draw();   Glyph() {     System.out.println("Glyph() before draw()");     draw();     System.out.println("Glyph() after draw()");   } } class RoundGlyph extends Glyph {   private int radius = 1;   RoundGlyph(int r) {     radius = r;     System.out.println("RoundGlyph.RoundGlyph(), radius = " + radius);   }   void draw() {     System.out.println("RoundGlyph.draw(), radius = " + radius);   } } public class MainClass {   public static void main(String[] args) {     new RoundGlyph(5);   } } Glyph() before draw() RoundGlyph.draw(), radius = 0 Glyph() after draw() RoundGlyph.RoundGlyph(), radius = 5