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开发人员指南》上的相关信息少的可怜,真令人失望。
总之,对于面向对象编程不懂!谁给我讲讲,谢谢!
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;