inherited 的研究。
结论:
1. inherited默认调用的是父类的同名 同参数方法。(常用,如果是同名 同参数方法 比如 overide 的,可以省略,只写个inherited就可。)
2. 子类的方法里可以 inherited+ 父类的其它非同名 同参数方法。见:下方 son3
若父类不存在 同名 同参数方法 则编译报错。如下图:


unit Unit6; interface uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Samples.Gauges; type
TForm6 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; TFather = class
public
constructor Create; overload;
constructor Create(const str: string); overload;
end; TSon = class(TFather)
public
constructor Create; overload;
constructor Create(const str: string); overload;
constructor Create(const str1, str2: string); overload;
end; var
Form6: TForm6; implementation {$R *.dfm} { TFather } constructor TFather.Create;
begin
OutputDebugString('father');
end; constructor TFather.Create(const str: string);
begin
OutputDebugString(PChar(str));
end; { TSon } constructor TSon.Create;
begin
inherited;
end; constructor TSon.Create(const str: string);
begin
inherited;
end; constructor TSon.Create(const str1, str2: string);
begin
//inherited; //父类没有两个参数的函数的时候会怎样?
inherited Create(str1 + str2); //这里用了 非同名 同参数方法
end; procedure TForm6.Button1Click(Sender: TObject);
var
son1, son2, son3: TSon;
begin
son1 := TSon.Create;
son2 := TSon.Create('test');
son3 := TSon.Create('abc', 'cde'); son1.Free;
son2.Free;
son3.Free;
end; end.
inherited 的研究。的更多相关文章
- Nagios学习实践系列——配置研究[监控当前服务器]
其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...
- jdk研究——java.lang
jdk研究 volatile 是什么意思? 如何看jdk源码? 如何调试源码!---------仔细解读关键类,关键代码,常用的api的解释! 自己有疑问的不懂地方-------- 不懂的太多怎么办. ...
- 线程系列3---ThreadLocal类研究
2013-12-23 17:44:44 Java为线程安全提供了一些工具类,如ThreadLocal类,它代表一个线程局部变量,通过把数据放在ThreadLocal中就可以让每个线程创建一个该变量的副 ...
- VCL设计方法概论(自己总结了9条),以及10个值得研究的控件 good
VCL设计方法概论 1. 把Delphi对象改造成一个Windows窗口,主要是要设置Handle和回调函数.在创建一个Windows窗口后,将其句柄赋值给Delphi对象的属性,这个并不难,相当于从 ...
- BS_OWNERDRAW风格的作用和例子,值得研究~
TBitBtn就是一个例子: procedure TBitBtn.CreateParams(var Params: TCreateParams); begin inherited CreatePara ...
- 研究一下FBrush,它是从TWinControl才有的属性(可能是因为需要句柄)——发现{$R *.dfm}在运行期执行,而且很有深意,读到属性后赋值还会触发事件,这些无法在VCL代码里直接看到
定义和创建: TWinControl = class(TControl) private FBrush: TBrush; end; constructor TWinControl.Create(AOw ...
- 终于懂了:TWinControl.DefaultHandler里的CallWindowProc(FDefWndProc)还挺有深意的,TButton对WM_PAINT消息的处理就是靠它来处理的(以前不明白为什么总是要调用inherited,其实就是没有明白TWinControl.DefaultHandler的真正用处)
我忽然发现:TButton既没有处理WM_PAINT,又没有Paint()或者PaintWindow(),那么它是什么时候被绘制的? Form1上放2个TButton,然后设置代码: procedur ...
- 有空研究一下OwnerDraw和三种Windows风格CS_OWNDC和CS_PARENTDC和CS_CLASSDC
就在StdCtrls.pas, ExtCtrls.pas和Buttons.pas三个类里研究就够了,这是初步的搜索结果: ---------- 在打开的文档中查找 ---------- "G ...
- TMsgThread, TCommThread -- 在delphi线程中实现消息循环(105篇博客,好多研究消息的文章)
在delphi线程中实现消息循环 在delphi线程中实现消息循环 Delphi的TThread类使用很方便,但是有时候我们需要在线程类中使用消息循环,delphi没有提供. 花了两天的事件研究了 ...
随机推荐
- process.nextTick,Promise.then,setTimeout,setImmediate执行顺序
1. 同步代码执行顺序优先级高于异步代码执行顺序优先级: 2. new Promise(fn)中的fn是同步执行: 3. process.nextTick()>Promise.then()> ...
- 【agc019C】Fountain Walk
Portal --> agc019C Description 有一个\(10^8*10^8\)的网格图,一格距离为\(100\),第\(x\)条竖线和第\(y\)条横线的交点记为\((x,y)\ ...
- 1:IMEI、MSISDN字段隐藏方法
1.在服务器上找到带有手机号码及IMEI的报表,下载到本地: 2.找到如下方框的表格列(例如:ID:104的报表):
- Python word_cloud 部分文档翻译 标签云系列(二)
转载地址:https://zhuanlan.zhihu.com/p/20436581上文末尾提到 Python 下还有一款词云生成器.amueller/word_cloud · GitHub 可以直接 ...
- idea中复制module和module中的蓝色tag出现的方法
1.在从github上面导入项目到idea中时,经常好多module都是没有蓝色的tag的,这说明这不是个maven形式的module,需要导入到项目中. 举个例子: 有蓝色tag的module才可以 ...
- 使用tkinter做简单计算器
代码如下: from tkinter import * #导入tkinter库 root =Tk() #给窗体 root.title('calculator') #设置窗体名字 frm=Frame(r ...
- 51nod 1534 棋子游戏
1534 棋子游戏 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 http://www.51nod.com/onlineJudg ...
- [转] malloc基本实现
任何一个用过或学过C的人对malloc都不会陌生.大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉.但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至 ...
- 《设计模式》-原则六:迪米特法则(LoD)
啊哈哈哈哈,又到星期五了,真开心.回来吃完饭慌着去玩游戏,所以立马过来先完成今天的学习目标. 这个原则的命名好像是以某个人的名字命名的,算了我不去管这个了. 直接说说我学到的东西,这个迪米特法则又可以 ...
- [转载]asp.net mvc: why is Html.CheckBox generating an additional hidden input
http://stackoverflow.com/questions/2697299/asp-net-mvc-why-is-html-checkbox-generating-an-additional ...