TBass = class PRocedure alert; virtual; {加上 virtual 指示字, 说明这个方法可能会被修改(或叫覆盖)} {这种方法叫虚方法} end;2、override 重写 修改父类的同名方法
TChild1 = class(TBass) procedure alert; override; {override 表示修改父类的同名方法} end;3、overload 重载父类同名不同参的函数
重载就是在不改变继承过来的方法的基础上重新添加一个方法名字一样,但参数或返回值是不一样的。TBass = class procedure Proc; virtual; function Fun(x,y: Integer): string; end;TChild4 = class(TBass) procedure Proc(Astring:string); overload;//同名不同参的函数 end;4、inherited
inherited 就是调用父类方法的一个特殊命令;一般与override 配合使用
类的构造函数constructor TSeekMarkShape.Create;begin inherited;//先构造父类 MarkImage := nil;end;类的析构函数
destructor TSeekMarkShape.Destroy;begin FreeAndNil(MarkImage);//先析构自己 inherited;end;5、class function
class function 不需要实例化就可以使用
6、var 、out和const
无任何修饰符时,是形参传递,函数中会创建一份新的参数。大数据参数时,不建议这样传递参数var 是地址传递,会修改原有的变量out传递给过程的实际参数不必进行初始化,out也可以认为是地址传递Const修饰的参数传入之后不允许修改,如果在过程中修改参数会报错详细可参考http://www.cnblogs.com/echomyecho/archive/2012/03/04/2379077.html
新闻热点
疑难解答
图片精选