Type Tplane = class public procedure fly; Virtual Abstract
Declares the parent class abstract method, op polymorphic end; Type Tcopter = Class (Tplane) public procedure fly; Override
Subclass rewrite end; Type Tjet = Class (Tplane) public procedure fly; Override
Subclass rewrite end;
var Form1:tform1; Implementation {$R *.DFM} procedure tcopter.fly;
The instantiation of the subroutine begin ShowMessage (' I ' M tcopter ');
End
Subclass instantiation of Procedure Tjet.fly;
Begin ShowMessage (' I ' M tjet ');
End
Procedure Plane_fly (const pplane:tplane);
Begin Pplane.fly;
End
Procedure Tform1.button1click (Sender:tobject);
var Copter:tplane; Begin Copter: = Tcopter.create;
Depending on the invocation of the actual type, the non-defined variable type plane_fly (copter); Copter.
Destroy;
End
Procedure Tform1.button2click (Sender:tobject);
var Jet:tplane; Begin Jet: = Tjet.create;
Depending on the invocation of the actual type, the non-defined variable type plane_fly (Jet);
Jet.free; End