override的使用情况
在父类已定义函数的情况下,为了可以在继承父函数内容的同时增加新的内容,这时候就需要用到override
了。
因为我的理论知识严重不足,只能用代码说话了
父类单元TestUnit
unit TestUnit;
interface
uses
System.Classes, System.SysUtils, FMX.Dialogs;
type
TMyTest = class
public
constructor Create; virtual;
end;
implementation
{ TMyTest }
constructor TMyTest.Create;
begin
inherited;
//这里是默认初始化后弹窗显示的内容
ShowMessage('我是父亲');
end;
end.
调用单元Form1.Btn1
unit Main;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation,
FMX.StdCtrls, TestUnit;
type
TForm1 = class;
TMyTT = class(TMyTest)
public
constructor Create; override;
end;
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
MyTT: TMyTT;
implementation
{$R *.fmx}
{ TMyTT }
constructor TMyTT.Create;
begin
//如果有inherited;则继承父类的内容(简单说就是有inherited;就弹出:我是父亲对话框,然后弹出:我是儿子对话框,如果没有inherited;则直接放弃掉父类的代码,直接弹出:我是儿子对话框)
inherited;
ShowMessage('我是儿子');
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
MyTT := TMyTT.Create;
end;
end.
···
网友评论