<div dir="ltr">I&#39;m interested to know if overriding a lazy stored property in a sub-class is recommended or not. For example:<div><br></div><div>class CustomSegue: NSStoryboardSegue {</div><div>    lazy var animator: CustomAnimator()</div><div><br></div><div>    override func prepare() {</div><div>         ....</div><div>    }</div><div>}</div><div><br></div><div>class CustomSlideRightSegue: CustomSegue {</div><div>     override lazy var animator: CustomAnimator(.slideRight)</div><div>}</div><div><br></div><div>This works fine and the compiler does not complain. However:</div><div><br></div><div>1. Why is overriding lazy stored properties supported, while overriding a non-lazy stored property is not.</div><div><br></div><div>2. Is this behaviour intended and/or recommended.</div><div><br></div><div>3. I realise you can achieve the same result by overriding init in the sub-class and assigning to a non-lazy property, however often this reduces clarity and introduces un-necessary boiler-plate code (especially if init takes a number of args).</div><div><br></div><div>Thanks!</div><div><br></div><div>John</div></div>