网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 生活知识 生活百科 知识问答 更多知识

Delphi中虚方法的实现

时间:2026-02-15 11:35:04

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

Delphi中虚方法的实现

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

Delphi中虚方法的实现

3、在代码中定义一个TMyClass父类,其包含一个虚方法,代码如下:

type

  TMyClass = class

    name:String;

    procedure showName();virtual;

  end;

虚函数声明有virtual关键字

Delphi中虚方法的实现

4、在代码中定义一个TMyChClass子类,继承自TMyClass父类,子类覆盖父类的虚方法,代码如下:

  TMyChClass = class(TMyClass)

    procedure showName();override;

  end;

Delphi中虚方法的实现

5、编写父类和子类showName过程的具体实现代码如下:

procedure TMyClass.showName;

begin

  Writeln(self.name);

end;

{ TMyChClass }

procedure TMyChClass.showName;

begin

  inherited;

  Writeln('我是子类对象');

end;

Delphi中虚方法的实现

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;

end.

Delphi中虚方法的实现

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

Delphi中虚方法的实现

© 2026 五度知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com