📄 demo.pas
字号:
unit Demo;
interface
uses
SysUtils, Windows, Messages, Classes, Dialogs;
type
TEngine = class(TObject)
private
FCapacity: Integer;
FPower: Integer;
public
constructor create;
procedure start;
procedure stop;
end;
TWheel = class(TObject)
private
FNo: Integer;
FSize: Integer;
FTypeName: string;
procedure check;
public
constructor create(size:Integer;TypeName:string;No:Integer);
end;
TVehicle = class(TObject)
protected
FColor: string;
FMake: string;
FTopSpeed: Integer;
FWheel: TWheel;
FWheels: TList;
procedure SlowDown;
procedure SpeedUp;
procedure Start;
procedure Stop;
end;
TBicycle = class(TVehicle)
public
constructor create;
destructor Destory;
procedure ride;virtual;
end;
TCar = class(TVehicle)
protected
FEngine: TEngine;
public
constructor create;
destructor Destory;
procedure drive;virtual;
end;
implementation
{
*********************************** TBicycle ***********************************
}
constructor TBicycle.create;
var
i: Integer;
begin
FColor:='白色';
FMake:='永久';
FTopSpeed:=20;
ShowMessage(FColor+FMake+'车,最高时速:'+IntToStr(FTopSpeed));
FWheels:= TList.Create;
for i:=1 to 2 do
FWheels.Add(TWheel.create(21,'B型自行车车轮',i));
end;
destructor TBicycle.Destory;
var
i: Integer;
begin
for i:=1 to 2 do
TWheel(FWheels.Items[i]).Free;
inherited;
end;
procedure TBicycle.ride;
begin
start;
speedUp;
showmessage('自行车车行驶中...');
SlowDown;
Stop;
end;
{
************************************* TCar *************************************
}
constructor TCar.create;
var
i: Integer;
begin
inherited create;
FEngine:=TEngine.create;
FColor:='黑色';
FMake:='红旗';
FTopSpeed:=200;
ShowMessage(FColor+FMake+'车,最高时速:'+IntToStr(FTopSpeed));
FWheels:= TList.Create;
for i:=1 to 4 do
FWheels.Add(TWheel.create(36,'A型汽车车轮',i));
end;
destructor TCar.Destory;
var
i: Integer;
begin
for i:=1 to 4 do
TWheel(FWheels.Items[i]).Free;
FEngine.Free;
inherited;
end;
procedure TCar.drive;
begin
start;
FEngine.start;
speedUp;
showmessage('汽车行驶中...');
SlowDown;
FEngine.stop;
Stop;
end;
{
*********************************** TEngine ************************************
}
constructor TEngine.create;
begin
Fcapacity:=1500;
Fpower:=130;
end;
procedure TEngine.start;
begin
ShowMessage(inttostr(Fcapacity)+'cc,'+inttostr(Fpower)+'匹马力的发动机发动了!');
end;
procedure TEngine.stop;
begin
ShowMessage('发动机关闭了');
end;
{
*********************************** TVehicle ***********************************
}
procedure TVehicle.SlowDown;
begin
ShowMessage('正在减速...');
end;
procedure TVehicle.SpeedUp;
begin
ShowMessage('正在加速...');
end;
procedure TVehicle.Start;
begin
ShowMessage('车子开始启动');
end;
procedure TVehicle.Stop;
begin
ShowMessage('车子停下');
end;
{
************************************ TWheel ************************************
}
constructor TWheel.create(size:Integer;TypeName:string;No:Integer);
begin
FSize:=size;
FTypeName:=TypeName;
FNo:=No;
check;
end;
procedure TWheel.check;
begin
ShowMessage('检查第'+IntToStr(FNo)+'个车轮。型号:'+FTypeName+' 大小:'+IntToStr(FSize));
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -