1、inherited;并不是完整的写法,完整的是在其后加上方法调用。例如:
procedure TfrmMain.SXMyMessage(var Msg:TMessage);
begin
inherited SXMyMessage(Msg);
//或者inherited 父类提供的任何可见的方法(需要的参数);
end;
直接写inherited;表示调用父类中相同名字的方法。如果它是重载的则必须写完整,否则编译器不知道调用哪一个重载的方法。
2、inherited并不局限于消息处理中使用,实际上在任何地方都可以使用它。意思就是调用父类的某个方法。例如:
procedure TForm1.Button1Click(Sender: TObject);
begin
inherited Close;
end;
3、因为inherited只是调用父类的某个方法,因此如果不需要使用这个调用时,那么就没有必要使用inherited。不过 fengjn(小枫) 的说法是不准确的。在大多数时候即使父类没有处理这类消息,也往往应该加上inherited语句,因为父类的处理在将来完全是可能要修改的。
关于inherited这个关键字。
最新推荐文章于 2022-10-16 20:19:45 发布