覆盖、再覆盖
2021-05-01 00:28
676 查看
覆盖、再覆盖
在实践中真的会发现更多问题.
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; IA = Interface function GetName: string; property Name: string read GetName; end; TC1 = class(TInterfacedObject, IA) function GetName: string; virtual; end; TC2 = class(TC1) function GetName: string; override; //覆盖 end; TC3 = class(TC2) function GetName: string; override; //再覆盖 end; TC4 = class(TC3) function GetName: string; override; //再覆盖 end; var Form1: TForm1; implementation {$R *.dfm} { TC1 } function TC1.GetName: string; begin Result := 'C1'; end; { TC2 } function TC2.GetName: string; begin Result := 'C2'; end; { TC3 } function TC3.GetName: string; begin Result := 'C3'; end; { TC4 } function TC4.GetName: string; begin Result := inherited + '0'; end; {测试} procedure TForm1.FormCreate(Sender: TObject); var v1,v2,v3,v4: IA; begin v1 := TC1.Create; v2 := TC2.Create; v3 := TC3.Create; v4 := TC4.Create; ShowMessageFmt('%s, %s, %s, %s', [v1.Name, v2.Name, v3.Name, v4.Name]); //C1, C2, C3, C30 end; end.
相关文章推荐
- view的覆盖,
- 鼠标进入与离开的消息(覆盖CM_MOUSEENTER与CM_MOUSELEAVE消息)——Windows本身没有这样的消息
- 矩形覆盖
- poj3254 棋盘覆盖~方案数
- 最小权顶点覆盖问题
- 什么情况下document.write会覆盖页面及覆盖原理解释
- 函数重载、覆盖和隐藏
- C++类成员函数的重载、覆盖和隐藏区别?
- [ACM] FZU 1686 神龙的难题 (DLX 反复覆盖)
- 最小覆盖圆的增量算法
- Android覆盖安装应用 at android.app.LoadedApk.makeApplication
- java方法覆盖(当有static的方法时)
- hdu 4606 简单计算几何+floyd+最小路径覆盖
- 成员函数的重载、覆盖与隐藏
- 分治——棋盘覆盖
- 解决SurfaceView设置透明造成覆盖其他组件的替代方案
- CSS样式覆盖规则
- 函数模板,函数模板重载,可变參数模板,函数模板覆盖,通过引用交换数据
- 覆盖安装
- PHP面向对象编程之深入理解方法重载与方法覆盖(多态)