1、override overload reintroduce的中文叫法是什么?
《delphi程序设计教程》上说override是重载、overload是重定义。《delphi5开发人员指南》上说override是覆盖、overload是重载。
2、在子类中override或overload父类中的动态或虚拟方法后是否会改变父类中的相应方法?
3、self是怎么回事,怎么使用?
4、reintroduce与override overload有何区别,怎么使用?
基本上不明白上面这些东东是怎么回事,请详细的讲一讲,谢谢了!
《delphi5开发人员指南》上的相关信息少的可怜,真令人失望。
总之,对于面向对象编程不懂!谁给我讲讲,谢谢!
《delphi程序设计教程》上说override是重载、overload是重定义。《delphi5开发人员指南》上说override是覆盖、overload是重载。
2、在子类中override或overload父类中的动态或虚拟方法后是否会改变父类中的相应方法?
3、self是怎么回事,怎么使用?
4、reintroduce与override overload有何区别,怎么使用?
基本上不明白上面这些东东是怎么回事,请详细的讲一讲,谢谢了!
《delphi5开发人员指南》上的相关信息少的可怜,真令人失望。
总之,对于面向对象编程不懂!谁给我讲讲,谢谢!
解决方案 »
- 高难问题,高手请进?
- 我的软件(DELPHI的)要改成外网的,用中间件服务器还是用JAVA改写?
- 散分啦,哈哈
- 如何通过程序代码对DBGrid控件中的记录进行全选标记?
- 请问,如何在同一MDI程序中,单击某一键向主窗体发送CTRL+TAB组合键?
- 谁能告诉我怎么编程合并单元格?
- 数据库与Excel的"通信"
- 各位大仙 : what is jpeg error #41 ? 及image使用MEMORYSTREAM 显示JPEG 问题 .
- 急、急、急,汉字转动如何实现?
- 如何程序关闭 opendialog1.Execute 调用的对话框
- 在delphi里边怎样调用别的可执行程序
- ★怎样理解这段话?关于对象的秘密!
override:覆盖;overload:重载;Reintroduce:重定义
2、在子类中override或overload父类中的动态或虚拟方法后是否会改变父类中的相应方法?
不会
3、self是怎么回事,怎么使用?
Self因为这这个对象本身,例如,在TForm1的OnCreate事件中写Self指的是TForm1实例化后的对象,如果TForm1上有一个TButton叫做Button1,那么OnButton1Click中写的Self也是TForm1实例化后的对象,
4、reintroduce与override overload有何区别,怎么使用?
在子孙类中要声明一个与祖先类中参数不同的方法的时候用Reintroduce,
但需要重新定义一个祖先类总的虚拟的或者动态的方法的时候,要用到Override;如果祖先类中的方法不是虚拟的或者动态的(定义的时候有virtual;就是虚拟的,有dynamic;就是动态的);那么是没有办法override的
至于Overload,一般适用于定义一组不同参数的函数,这些函数也可以不是Of Objects(中文该怎么说?)。
/////类的多态性
TMyTest=Calss
procedure MyStatic; //静态成员
proceudre Myvirtual;Virtual;//虚拟成员
procedure MyDynamic;dynamic;//动态成员
porcedure MyMsg(Var Msg:TMessage);message WM_SomeMessage; //处理消息成员
注意:只有声明为virtual或dynamic的函数可以进行实现多态性,
只需在派生类中将函数加override,如:
TMyTest2=Class(TMyTest)
proceudre Myvirtual;override;
procedure MyDynamic;override;
//关于类重载
TMyTest=Class
procedure Mytest(i:Integer);overload;
procedure Mytest(kk:Real);overload;
procedure Mytest(Str:String);overload;
end;
//重新引入方法名称
TMyBase=Class
procedure Test;
end;
TMySome=Class(TMyBase)
procedure Test;reintroduce; //
end;