覆盖,
---在声明方法时,如果和继承于父类的相同但是没有写OVERRIDE,
(父类的同名方法要VIRTUAL/DYNAMIC),就是隐藏(覆盖)否则重载.
曾经有人在这儿对OVERLOAD和OVERRIDE咬文嚼字一番,
说一个过载一个叫重载,事实上在BORLAND的正式文档中
把这两个说法完全相同,都叫重载.
至于OVERRIDE没什么好说的.
至于OVERLOAD不是面向对象的PASCAL里的新东西,
但是在OOP里有新的使用.
见下例
Type
T1 = Class
Procedure Proc(S: string)
overload
virtual;
end;
T2 = Class(T1)
Procedure Proc(I: Integer)
reintroduce
overload;
end;
TestObj := T2.Create;
TestObj.Proc('吃了吗:)')
//CALL T1.Proc
TestObj.Proc(111)
//Call T2.Proc
关于过程、函数、方法参数的问题
补充一句:
变参(VAR)一定是采用传递引用方式,即传一个指向数据保存的那个地址的指针
而不管这种参数的数据类型是什么
值参(PASCAL默认)和常参(CONST)
到底是数值拷贝还是传引用,取决于参数类型不可一概而论。
比如字符串,肯定是传引用。