你用的继丞方法错了,
像你这样的代码,应该加overload
type
TChild = class(TFather)
public
function Hello(A1: Integer; A2: Integer): String;overload//加入
end;
以下代码改为 function TChild.Hello(A1: Integer; A2: Integer): String;
begin
inherited
Result := IntToStr(S1 + S2);
end;
像你这样的代码,应该加overload
type
TChild = class(TFather)
public
function Hello(A1: Integer; A2: Integer): String;overload//加入
end;
以下代码改为 function TChild.Hello(A1: Integer; A2: Integer): String;
begin
inherited
Result := IntToStr(S1 + S2);
end;
解决方案 »
- 连接DCOM服务器出错,始终显示:RPC服务器不可用!
- 调用存储过程找不到参数???
- FCtreeview 哪位大大知道哪里有得载这个控件
- adotable sqlserver 2000
- 简单的问题
- Tdxdbgrid是一个什么样的东东,收费吗
- dbgrid的ondrawdatacell与ondrawcolumncell,有什么区别?
- Delphi能否开发B/S应用,如果能,那么与使用JBuilder开发B/S应用有什么异同点?
- lanren_me(阿波):能否把dbf->db(paradox)的转换程序发个给我,[email protected]
- 向各位高手请教一个简单问题
- 有关于CLIENTDATASET的排序。
- 哪位推荐一本专门讲Delphi基本控件使用的书?
Q:24138511
type
TBase=class
public
procedure method1;virtual;
end;
TDerive=class (TBase)
public
procedure method1;override;
end;
var
Form1: TForm1;implementation{$R *.dfm}
procedure TBase.method1;
begin
ShowMessage('Base method1');
end;
procedure TDerive.method1 ;
begin
ShowMessage('Derive method1');
inherited;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Base:Tbase;
Derive:TDerive;
begin
Derive:=TDerive.Create ;
Derive.method1;
end;
点击button,可以看到有inherited就会调用基类的method1,没有inherited就
只执行继承类的method1,而不执行基类的method1。
type
TMyClass=Class
procedure Method1;virtual;
procedure Method2;
end;
TMySubClass=Class(TMyClass)
procedure Method1;override;
procedure Method2;
end;
procedure TMySubClass.Method1;
begin
inherited Method1;//执行父类的Method1
......
end;
procedure TMySubClass.Method2;
begin
TMyClass.Method2;//执行父类的Method2
......
end;