Understanding inheritance
When inheriting scripts, you have full flexibility. The beep script in the above example is added to the superclass and is completely visible to the subclass. The subclass can also override the superclass script, either completely replacing its function or extending its function by executing super beep along with other code. In the cases where you use the inherited script directly or override it and call super, any subsequent changes to the superclass script are preserved and visible in the subclass. In the case where you completely override the inherited script, any subsequent changes to the superclass script are not visible to the subclass.
When inheriting visual parts, you do not have the same flexibility. You are limited to the latter scenario, where the visual part class that you inherit from is completely overridden. After inheriting, any subsequent changes to the visual part superclass are not visible to the visual part subclass, because saving the changes causes the regeneration of abtBuildInternals and other runtime methods, which are completely overridden by the same runtime methods in the subclass. As a result, inheriting visual parts should be thought of as a one-time copy. Therefore, you should be careful to stabilize the visual part class you are inheriting from as much as possible before inheriting.
Last modified date: 01/29/2015