type
ClassA = class
protected
function test1: Boolean;virtual;
function test2: Boolean;
function test3: Boolean;dynamic;
end;
ClassB = class(ClassA) //继续自ClassA
protected
function test1: Boolean;override;//正确
function test2: Boolean;override;//错误,父亲的test2方法即不是虚拟方法,也不是动态方法.
function test3: Boolean;override;//正确
end;
inherited表示执行父亲的方法.
如
function ClassA.test1: Boolean;
begin
ShowMessage('ClassA.test1');
end;
function ClassB.test1: Boolean;
begin
Result := inherited test1(); //执行这一句将显示ShowMessage('ClassA.test1');
//如同C++中的base.test1();
end;