1、override overload reintroduce的中文叫法是什么?
  《delphi程序设计教程》上说override是重载、overload是重定义。《delphi5开发人员指南》上说override是覆盖、overload是重载。
2、在子类中override或overload父类中的动态或虚拟方法后是否会改变父类中的相应方法?
3、self是怎么回事,怎么使用?
4、reintroduce与override overload有何区别,怎么使用?
  基本上不明白上面这些东东是怎么回事,请详细的讲一讲,谢谢了!
  《delphi5开发人员指南》上的相关信息少的可怜,真令人失望。
总之,对于面向对象编程不懂!谁给我讲讲,谢谢!

解决方案 »

  1.   

    其实叫什么无所谓,关键是要理解他的含义。我一般都是直接念英文,不过别人听不懂的时候我会这么叫:1、override overload reintroduce的中文叫法是什么?
      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(中文该怎么说?)。
      

  2.   

    //类信息
    /////类的多态性
    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;
      

  3.   

    Override是实现类的多态的关键而Overload和多态没有任何的关系,和对象也没有关系,只是OP语言的一种现象
      

  4.   

    Virtual和Dynamic是实现晚绑定的关键