阅读insideVCL问题,关于abstract(各位讨论一下)
书中第99页讲到VCL framework 基本上并不喜欢用抽象类,因为抽象类有些问题。。。第一是Object Pascal允许程序员创建抽象类,这会导致执行期错误。
我得理解是(下是书上的一个类)
TAbstractClass=class(TObject)
public
procedure AbstractMethod1;virtual;abstract;
function GetSomething:String;virtual;abstract;
procedure SomeContreMethod;virtual;
end;
如果是用;virtual;abstract;那么派生类就会override父代抽象类来提供服务,可能影响父类的procedure从而影响其他派生类。
如果只是virtual;就可以不同派生类继承来实现自己的服务,不会改写父类的procedure
看来主要是我对abstract的理解不好才有这个问题。希望各位指教。