1. 抽象类法(VCL不推荐);第一,允许创建抽象类对象,因为语法没问题,但允许其错误。第二,接口更好。第三,如果是混合抽象类,则推荐Place Holder方法
2. Place Holder(占位):父类虚拟函数为空白函数,但不是抽象方法。例如TCanvas。避免了抽象类的缺点
3. 逐渐增加法:子类使用inherited调用父类的实现,并加入派生类的实现
4. 三明治手法:
5. 覆盖父类实现法:子类的函数使用virtual覆盖,使用Windows消息覆盖
6. BootStrap设计法:父类定义各种服务方法,但缺少服务对象,因此只能创建派生类对象来执行。TControlCanvas
不过Java不支持三明治手法,因为调用父类函数只能放在第一个