One more report:<br><br>I finally decided to use the solution suggested by Fei, i.e. empty method in base class instead of Abstract method. Becuase comparing address to @system.AbstractError caused trouble if I put my class into a shared library.<br>

<br>Thanks.<br><br><br><br><div class="gmail_quote">2013/1/24 Mattias Gaertner <span dir="ltr"><<a href="mailto:nc-gaertnma@netcologne.de" target="_blank">nc-gaertnma@netcologne.de</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Xiangrong Fang <<a href="mailto:xrfang@gmail.com">xrfang@gmail.com</a>> hat am 24. Januar 2013 um 14:03 geschrieben:<br>
<div class="im"><br>
> This is a clean solution. And as a matter of fact, the compiler does NOT warn<br>
> me while instantiate class with abstract method.<br>
<br>
</div>Normally the compiler warns for each abstract method. For example, this creates<br>
5 warnings:<br>
 TStrings.Create;<br>
If not then please create a bug report.<br>
<div class="im"><br>
<br>
> This is different than Java, in which you must implement all abstract method<br>
> while inherits from an abstract class.<br>
><br>
>  Why I shall not instantiate a sub-class that has not fully implemented<br>
> abstract methods of its parent class?<br>
<br>
</div>Well, you can shoot yourself in the foot. ;)<br>
<span class="HOEnZb"><font color="#888888"><br>
Mattias<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
--<br>
_______________________________________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lists.lazarus.freepascal.org">Lazarus@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus</a><br>
</div></div></blockquote></div><br>