一个delphi初学者的简单语法问题(急求)

PurpleAxis 2008-02-29 12:34:47
我最近看书的时候有一个如下的实例:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type
TPerson=class
procedure Infor;
end;
TEmployee=class(TPerson)
procedure Infor;
end;

procedure TPerson.Infor;
begin
Writeln('TPerson.Infor');
end;

procedure TEmployee.Infor;
begin
Writeln('TEmployee.Infor');
end;

var
P1:TPerson;
E1:TEmployee;

begin
P1:=TPerson.Create;
P1.Infor;
P1.Destroy;
P1:=TEmployee.Create;
P1.Infor;
[color=#800080]TEmployee(P1).Infor;[/color]
P1.Destroy;
E1:=TEmployee.Create;
E1.Infor;
E1.Destroy;
Readln;
end.
其中的代码一般都能懂,但是TEmployee(P1).Infor;这一句不明白是什么意思,特别是TEmployee(P1)这里不明白,请各位高手
给我讲解一下。不甚感谢!!
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsmserver 2008-02-29
  • 打赏
  • 举报
回复
强制类型转换
也就是说将PI的类型为TEmployee
僵哥 2008-02-29
  • 打赏
  • 举报
回复
TEmployee这是你定义的一种类型,即Type,Type(var_Pointer),是将var_Pointer强制转换为Type类型。
因为P1是以TPerson声明的,如果直接调用Infor就会调用的是TPerson的Infor,虽然它是TEmployee的实例,如果想要调用TEmployee就必须告诉编译器你所要调用的是TEmployee的Infor.
PurpleAxis 2008-02-29
  • 打赏
  • 举报
回复
就这点分,分分吧!!
PurpleAxis 2008-02-29
  • 打赏
  • 举报
回复
明白了,谢谢。都感谢。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧