大家好,这是一个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
答案 0 :(得分:3)
您没有在Emp对象中指定名字和姓氏的值,因此它们默认为空字符串。
您为person对象分配了值,但这是一个不同的对象,一个不同的实例。如果您希望Emp对象拥有数据,则需要分配它。
看起来你对类和实例之间的区别存在根本的误解。我建议你在课本中重温这个主题。
我建议你多加注意拼写和信件。您的代码看起来很乱,通常表示对细节缺乏关注。