請教:inherited是做什麽的

imfzp 2005-03-19 07:29:27
比如這種行代碼中的inherited;
英語意思好像是繼承吧
delphi裏具體起什麽作用啊,可不可以去掉這行
procedure TFrm_office.FormCreate(Sender: TObject);
begin
inherited;

end;
...全文
141 点赞 收藏 13
写回复
13 条回复
leehaitao 2005年05月12日
可以在任何地方使用,如果不跟具体的过程名,表示是一个override的方法,在该方法里调用父类的同名方法,后面跟具体过程名,表示直接调用父类的该方法。
回复 点赞
Stiven_PFan 2005年03月26日
inherited 后面指定过程名,则是执行父类中的过程
不指定则执行父类中与本过程同名的过程
回复 点赞
finalfighter 2005年03月26日
看来楼主没有领会“继承”的思想!
好好看看资料吧!
回复 点赞
todouwang 2005年03月26日
继承,有了它,就要执行该对象父类里的过程和方法,
比如在d5开发指南里就写了一个窗体的过程,没调用inherited 的话,根本窗体不画出来,
因为绘窗体的过程在它父类里的
回复 点赞
zhxzhx 2005年03月21日
在某些时候要加,如需要继承父类的各项功能时不可以省去,如果不是的话是可以省去的.
回复 点赞
何鲁青 2005年03月21日
对 smiler007(笑一笑) 的一点点补充
inherited一般用在override一个父类的方法
但是又不仅仅局限在这种用法,在任何地方你都可以使用
inherited,其实说白了就是继承一个父类的同名的方法
(注意:同名)
回复 点赞
晨池 2005年03月20日
在Delphi6中,需要加,不然就运行的时候出错了
回复 点赞
zlkw 2005年03月20日
好像现在创建类的时候,可以在子类不加inherited create; 而会直接调用父类的构造,因为delphi会默认的啊
回复 点赞
xiaonanln 2005年03月20日
学习
回复 点赞
smiler007 2005年03月20日
就楼主贴出来的代码
procedure TFrm_office.FormCreate(Sender: TObject);
begin
inherited;

end;
如果去掉了inherited语句,那就不会去执行父类form的 OnCreate 事件中的代码了
如果保留 inherited 语句,则会先执行父类form的 OnCreate 事件中的代码,然后会去执行你写在inherited语句后面的代码....
回复 点赞
ztenv 2005年03月19日
最好不要去掉,它调用了父类的方法,如果去掉了可能会发生某些 错误,不过你可以试试,在delphi的帮助里去看看吧;
回复 点赞
b1a2 2005年03月19日
是调用父类的默认方法,特别是在类中的建立和释放方法中.该语句是不能去掉的!!!否则有可能发生资源泄露
回复 点赞
chijingde 2005年03月19日
就是他的字面意思啦

继承

当然可以去掉

去掉以后就不继承了呗
回复 点赞
发动态
发帖子
语言基础/算法/系统设计
创建于2007-08-02

3418

社区成员

3.3w+

社区内容

Delphi 语言基础/算法/系统设计
社区公告
暂无公告