1、打开RAD Studio开发工具,点击file--new--other

2、在弹出的对话框窗体,选择Console Application,点击OK新建一个控制台程序,在学习编程语言的时候,建议先从控制台学习基本语法。

3、在代码中定义一个TMyClass父类,其包含一个虚方法,代码如下:
type
TMyClass = class
name:String;
procedure showName();virtual;
end;

4、在代码中定义一个TMyChClass子类,继承自TMyClass父类,子类覆盖父类的虚方法,代码如下:
TMyChClass = class(TMyClass)
procedure showName();override;

5、编写父类和子类showName过程的具体实现代码如下:
procedure TMyClass.showName;
begin
Writeln(self.name);
end;
{ TMyChClass }
procedure TMyChClass.showName;
begin
inherited;
Writeln('我是子类对象');

6、在程序入口,分别进行TMyClass和TMyChClass类的对象的实例化,并代用
shouName方法,完整代码如下:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
type
TMyClass = class
name:String;
procedure showName();virtual;
end;
TMyChClass = class(TMyClass)
procedure showName();override;
end;
var
myObj:TMyClass;
myChObj:TMyChClass;
{ TMyClass }
procedure TMyClass.showName;
begin
Writeln(self.name);
end;
{ TMyChClass }
procedure TMyChClass.showName;
begin
inherited;
Writeln('我是子类对象');
end;
begin
myObj := TMyClass.Create;
myObj.name := '小明';
myObj.showName();
Writeln('-------------');
myChObj := TMyChClass.Create;
myChObj.name := '小花';
myChObj.showName();
Readln;

7、F9编译运行上面代码,结果如下图,子类覆盖了父类showName虚方法。虚方法的调用是通过一个虚拟表实现,在VCL中有很多实现
