delphi中对override(重写)和overload(重载)的一些看法

重写就是用现在的方法覆盖了继承过来的方法,重载就是在不改变继承过来的方法的基础上重新添加一个方法名字一样,但参数或返回值是不一样的。 下面举个例子: unit Unit1; interface type TStudent=class private //... public //... procedure test; implementation procedure test; begin showmessage('我是父亲'); end; end . 我写了一个类TStudent是继承自TObject的,TObject有一个Create构造函数。然而我现在要在TStudent类中重载这个构造函数,我们可以在类的public部分加上constructor Create(FSTR:string);overload;写这个重载的构造函数的实现(写在implementation下面) constructor TStudent.Create(FSTR: string); begin showmessage(FSTR); end; 然后在创建这个类的实例的时候就会有两个Create构造函数可选,一个没有参数的,一个是带参数的。这就是构造函数的重载。 下面说下override,现在有一个类继承自上面定义的TStudent类,然后要重写test这个procedure(注意,只有在public或是protected部分声明的才可以被子类继承,如果test被声明在private部分就不能被子类继承): unit Unit2; interface type Tstu1=class(TStudent) private //... public procedure test;override; implementation procedure test; begin inherited; showmessage('我是儿子'); end; end. 在override时,如果override的是procedure,则加上关键字inherited; 就会执行父类同名procedure的所有过程,然后再执行子类中特有的过程,如果override的是function则不会执行父类中同名function的内容.这一点要注意下 本人也是初学DELPHI,好象上面的东西描述的不是很准确,只是个人摸索的结果,希望不要误导大家,还是要多去看下DELPHI面向对象编程概念。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiao_jun_0820/archive/2008/03/01/2137720.aspx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值