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;
   
---------------------
作者:honglixx
来源:CSDN
原文:https://blog.csdn.net/honglixx/article/details/3624934
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. Linux shell脚本编程(一)
  2. android 入门-Service
  3. 在CentOS下利用Eclipse调试FFmpeg
  4. CentOS7_RAID5_LVM_SAMBA
  5. 【Android】如何使用安卓的logcat『整理』
  6. pop动画大全 只能时代程序员更应该关心效果而不是冷冰冰的代码
  7. js的 new image()用法[转]
  8. C++中内存分配详解
  9. 第13章 Swing程序设计----常用面板
  10. ES6中的模块
  11. 1、初识socket
  12. Codeforces Round #439 (Div. 2) C DP(图论)
  13. 洛谷 P3410 拍照
  14. iOS Build Apps for the World WWDC
  15. J - 青蛙的约会(扩展欧几里得)
  16. kafka原理和实践(四)spring-kafka消费者源码
  17. Linux中无权限使用sudo
  18. Windows(华硕/联想)笔记本上安装黑苹果与win双系统教程
  19. [转载]基于 Token 的身份验证
  20. 这个技术的出现,可能会颠覆阿里云、AWS!

热门文章

  1. 安装Docker和配置加速器(二)
  2. POJ1251(Kruskal水题)
  3. css3渐变特性
  4. BootStrap学习(1)
  5. Luogu P2473 [SCOI2008]奖励关
  6. 【C++】std::是什么?
  7. c#基础系列2---深入理解 String
  8. C语言----数据类型(基础篇一)
  9. Centos下安装破解Jira7的操作记录
  10. Linux系统下CPU使用(load average)梳理