这个如何?
type
IAmmoSender = interface //接口:弹药传送者
function SendAmmo(ASize: Integer) Byte;
end;
IWeapon = interface //接口:武器
function GetAmmoSize: Integer;
function LoadAmmo(ASender: TAmmoSender; ASize: Integer): Byte;
end;
//说明一下,让函数返回Byte是我的习惯
TWeapon = class(TObject, IWeapon) //支持 IWeapon 接口的武器类
function GetAmmoSize: Integer; virtual;abstract;
function LoadAmmo(ASender: TAmmoSender; ASize: Integer): Byte; virtual;abstract;
end;
TBattlePlan = class(TWeapon, IAmmoSender) //支持 IWeapon 、IAmmoSender 接口的飞机类
function GetAmmoSize: Integer;
function LoadAmmo(ASender: TAmmoSender; ASize: Integer): Byte;
function SendAmmo(ASize: Integer) Byte;
end;
TPerson = class(TObject, IAmmoSender) //支持 IAmmoSender 接口的人类
function SendAmmo(ASize: Integer) Byte;
end;
TCannon = class(TWeapon) //支持 IWeapon 接口的大炮类
function GetAmmoSize: Integer;
function LoadAmmo(ASender: TAmmoSender; ASize: Integer): Byte;
end;
----月夜风筝