首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一个delphi菜鸟的简单语法有关问题(急求)

2012-04-11 
一个delphi初学者的简单语法问题(急求)我最近看书的时候有一个如下的实例:program Project1{$APPTYPE CON

一个delphi初学者的简单语法问题(急求)
我最近看书的时候有一个如下的实例:
 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)这里不明白,请各位高手
给我讲解一下。不甚感谢!!

[解决办法]
TEmployee这是你定义的一种类型,即Type,Type(var_Pointer),是将var_Pointer强制转换为Type类型。
因为P1是以TPerson声明的,如果直接调用Infor就会调用的是TPerson的Infor,虽然它是TEmployee的实例,如果想要调用TEmployee就必须告诉编译器你所要调用的是TEmployee的Infor.
[解决办法]
强制类型转换
也就是说将PI的类型为TEmployee

热点排行