在Delphi中,答案是肯定的.
例如,我创建了一个语法高亮的文本编辑器组件.该组件具有属性FormattingProcessor,属性类型TFormattingProcessor.现在,我已经创建了几个格式的处理器,例如TXMLFormattingProcessor,TPascalFormattingProcessor和TINIFormattingProcessor,每一类可的孩子TFormattingProcessor.可以将其中任何一个分配给FormattingProcessor文本编辑器组件的属性.
即,变量声明为TFormattingProcessor可assinged的类型的值TXMLFormattingProcessor,TPascalFormattingProcessor或者TINIFormattingProcessor,例如.
如果您在VCL中查看,您会发现这种类型的分配实际上很常见.例如,TLabel组件具有FocusControl属性,属性类型TWinControl(如果我没记错的话).您可以TWinControl为此属性分配任何后代,例如a TEdit.(FocusControl是当标签的加速器字符与Alt键一起输入时将获得键盘焦点的控件.)