java - Override on Field initialization -
for following example, public abstract class recorddata { private mydate mdate = new mydate(new simpledateformat(""yyyy-mm-dd hh:mm:ss")); public date getmydate() { return mdate.getdate(); } ..... } i implementing classes override date format. 1 way of doing have method this: protected simpledateformat getdateform() { return new simpledateformat("yyyy-mm-dd hh:mm:ss") } so,the initialization should like: mydate mdate = new mydate(getdateform()); is there other convenient way of doing this. potential issues above implementation. doing bad idea: base class call methog of subclass in constructor, , call method on object hasn't been initialized yet. you'd better pass data needed superclass in constructor: public abstract class recorddata { private mydate mdate; protected recorddata(string datepattern) { this.mdate = new mydate(new simpledateformat(datepattern)); } } doing how others