急求 override overload的区别

解决方案 »

  1.   

    override:是类的方法重载
    overload:是函数可以重名,但参数不能一样。
      

  2.   

    ovrride是覆盖父类的关键字,在vcl当中在父类里很多方法会定义成虚拟方法virtual,在子类当中可以覆盖父类的方法,也可以用inherited调用父类的方法.
    overload这个才是重载吧,定义两个同名的方法时会用到如
    procedure test(age:integer);overload;
    procedure test(age:integer;Name:String);overload;
      

  3.   

    蹭点分
    override :必须在基类中声明为虚方法,才能在派生类中使用覆盖的关键字,在函数体内,你可以选择是否
                需要继承基类的方法,使用inherited关键字
    overload : 与类无关,任一方法或函数都可以定义为重载函数,当然这种些函数和名称得相同,不同的是使用的参数及类型,参数个数等
      

  4.   

    override :必须在基类中声明为虚方法,
    --不只是虚方法,动态方法(dynamic)也是可以在子类中用override覆盖父类方法的.
      

  5.   

    override: 覆盖  子类覆盖父类的实现
    overload: 重载
      

  6.   

    一个类想要两个两个名字的方法,则要用overload
    TMyNodeList=classpublic 
       //给定一个节点名称,创建一个节点后添加到当前列表中
       function Add(const ATitle:String):TMyNode;overload; 
       //将给定的节点添加到当前列表中
       function Add(ANode:Integer):Integer;overload;
    end;类有个方法,想要它的子类自己实现,是要用 override;TMyList=class
      procedure Sort;virtulal;
    end;TMyIntList=class(TMyList)
      procedure Sort;override;
    end;TMyStrList=class(TMyList)
      procedure Sort;override;
    end;
      

  7.   

    override: 覆盖  通常是父類有此方法,子類想重新實現方法,才出現了override。
    overload: 同個類或單元或進程里面方法的重载。范圍是相同,和override不一樣,override的范圍是子類與父類之間的覆蓋。