Delphi中虚方法的实现

2024-11-09 02:40:56

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中虚方法的实现
猜你喜欢