define class txtCPF as textbox *** blábláblá enddefine define class txtCGC as textbox *** blábláblá enddefineMuito bem, igual ao exemplo acima, você cria uma cacetada de textboxes específicos para suas aplicações. Amanhã, alguém descobre um bug maluco na baseclass do VFP, e outro alguém descobre algum "workaround - vulgo gambiarra", para corrigir o erro. Do jeito que foram criadas as sub-classes, diretamente baseadas na baseclass, você terá que sair de sub-classe em sub-classe alterando-as. Se você utilizar uma "camada isolada", que será a sub-classe abstrata baseada na baseclass, seus problemas estariam resolvidos corrigindo apenas uma classe. Por exemplo:
define class MeuTextboxBasico as Textbox *** exatamente igual à baseclass enddefine define class txtCPF as MeuTextboxBasico *** blábláblá enddefine define class txtCGC as MeuTextboxBasico *** blábláblá enddefineDesta forma, se em algum momento eu precisar alterar o comportamento da baseclass, eu altero a minha "baseclass", já que não posso mexer na do VFP.