Delphi中override overload reintroduction的用法

1、override overload reintroduce的中文叫法是什么?
override:覆盖;overload:重载;Reintroduce:重定义
2、在子类中override或overload父类中的动态或虚拟方法后是否会改变父类中的相应方法?
不会
3、self是怎么回事,怎么使用?
Self因为这这个对象本身,例如,在TForm1的OnCreate事件中写Self指的是TForm1实例化后的对象,如果TForm1上有一个TButton叫做Button1,那么OnButton1Click中写的Self也是TForm1实例化后的对象,
4、reintroduce与override overload有何区别,怎么使用?
在子孙类中要声明一个与祖先类中参数不同的方法的时候用Reintroduce,
但需要重新定义一个祖先类总的虚拟的或者动态的方法的时候,要用到Override;如果祖先类中的方法不是虚拟的或者动态的(定义的时候有virtual;就是虚拟的,有dynamic;就是动态的);那么是没有办法override的
至于Overload,一般适用于定义一组不同参数的函数,这些函数也可以不是Of Objects(中文该怎么说?)。
reintroduce引入是为了屏蔽父类的一个虚方法,而在子类中生成一个新的方法;overload是为了处理同名的方法有不同的参数而设计的;
其实你不使用reintroduce也会覆盖屏蔽父类的方法的但是会产生一个警告,
使用了这个关键字,表明你要屏蔽这样不会产生警告的!

如果类不从别的类继承(实际上也就是从TObject继承),
constructor Create; virtual; //virtual表示虚函数,表示可以被子类override;
destructor Destory: virtual;
如果从其它类继承,如:TForm
constructor Create(AOwner: TComponent); override;
destructor Destory: override;
如果子类想再overload一个函数,则必须加上reintroduce和overload
constructor Create(AOwner: TComponent); overload; override; //这里的overload必面在override之前.
constructor Create(AOwner: TComponent; AParent: TWinControl); reintroduce; overload;
例子
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
Ta = class(TObject)
public
constructor Create; virtual;
destructor Destory; virtual;
procedure aaa; virtual;
end;
tb = class(ta)
public
constructor Create; overload; override;
constructor Create(a: String); reintroduce; overload;
destructor Destory; override;
procedure aaa; overload; override;
procedure aaa(a: string); reintroduce; overload;
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
c: tb;
public
{ Public declarations }
end;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  • Java基础常见英语词汇(共70个)['ɔbdʒekt] ['ɔ:rientid]导向的 ...
    今夜子辰阅读 3,334评论 1 34
  • Introduction to C++ (Season 1) Unit 1: Overview of C++ 第1...
    我是阿喵酱阅读 2,767评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • 很实用的编程英语词库,共收录一千五百余条词汇。 第一部分: application 应用程式 应用、应用程序app...
    春天的蜜蜂阅读 1,399评论 0 22