Delphi - 继承函数结果

时间:2013-11-16 20:59:52

标签: delphi

大家好,这是一个Delphi代码

错误是这段代码......

Templyoe.fullName函数的结果不显示Tperson.fullname的继承结果函数是什么原因???

任何帮助PLZ? .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. ..............................

 program classes;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  Tperson = class(TObject)
    firstName : string;
    lastName : string;
    function fullName : string ; virtual;
  end;


  Temploye = class (Tperson)
  function fullName : string ; override;
  end;

  var
  person : Tperson;
  Emp : Temploye;


{ Tperson }
function Tperson.fullName: string;
begin
    result := firstName + ' ' + lastName;
end;

{ Tempolye }

function Temploye.fullName: string;
begin
result := 'hi ' + inherited fullName + ' You are in Temploye Function';
end;


begin

  person := Tperson.Create;

  person.firstName := 'code';
  person.lastName := 'programmer';

  writeln(person.fullName);
  person.Free;
  Emp := Temploye.Create;



  writeln(emp.fullName);
  emp.Free;

  readln;

end

1 个答案:

答案 0 :(得分:3)

您没有在Emp对象中指定名字和姓氏的值,因此它们默认为空字符串。

您为person对象分配了值,但这是一个不同的对象,一个不同的实例。如果您希望Emp对象拥有数据,则需要分配它。

看起来你对类和实例之间的区别存在根本的误解。我建议你在课本中重温这个主题。

我建议你多加注意拼写和信件。您的代码看起来很乱,通常表示对细节缺乏关注。