TBase=class
public
function AAA:string;
function CCC:string;
end; TA=class(TBase)
public
function AAA:string;
function CCC:string;reintroduce;
end;
var
obj:TA;
begin
obj:=TA.Create;
ShowMessage(obj.AAA); {TA AAA}
ShowMessage(TBase(obj).AAA);{BASE AAA}
ShowMessage(obj.CCC);{TA CCC}
ShowMessage(TBase(obj).CCC); {BASE CCC}
end;请问CCC后面加了reintroduce有什么不一样???
public
function AAA:string;
function CCC:string;
end; TA=class(TBase)
public
function AAA:string;
function CCC:string;reintroduce;
end;
var
obj:TA;
begin
obj:=TA.Create;
ShowMessage(obj.AAA); {TA AAA}
ShowMessage(TBase(obj).AAA);{BASE AAA}
ShowMessage(obj.CCC);{TA CCC}
ShowMessage(TBase(obj).CCC); {BASE CCC}
end;请问CCC后面加了reintroduce有什么不一样???
解决方案 »
- Delphi 做OCX当前网页截图
- 现金悬赏:xp或2k加载bin问题
- idsmtp和idmessage 发邮件,接收乱码 (=?GB2312?B?MDA4xOoxMNTCKQ==?=)
- 我C++写了一个类,没有用到任何的MFC类,类都是封装微软的API,我用VC编译成DLL。这个DLL,要如何让DELPHI程序可以调用该类里的公共函数
- DBGIRD事件调用问题“”“”“
- delphi7,如何操作listbox中的item,当单击某项后弹出窗体。
- savetofile
- 请问。DELPHI7。0的注册码是多少??
- 如何让用户输入要打开的表名
- 应该是2009的问题!
- 图片数字控件,DELPHI中有没有这个控件呀
- DELPHI的注册表操作出错DLL方面
这种情况下,没必要覆盖这个方法,只要在派生类中重新声明这个方法。但在编译时,编译器就
会发出一个警告,告诉你派生类的方法将隐藏祖先类的同名方法。要解决这个问题,可以在派生
类中使用 reintroduce 指示符。
T1 = class(TObject)
procedure Test(I: Integer); virtual;
end;
T2 = class(T1)
procedure Test(S: string); overload;
end;但是这样写没有问题,所以我支持3楼的意见,就是为了不让编译器报警而已