什么情况下可以用overload? 
参数类型不同: 可以, 参数个数不同: 可以, 变参与形参: 不可以. 我说的对吗?
shortint和longint间算是类型不同吗? 如果算那又如何区别呢? 我定义了如下两个overload过程:procedure TForm1.test(ANum: single);
begin
  showmessage('single');
end;procedure TForm1.test(ANum: extended);
begin
  showmessage('extended');
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  test(3.9);
end;---------------------------------------------------procedure TForm1.test(ANum: double);
begin
  showmessage('double');
end;procedure TForm1.test(ANum: extended);
begin
  showmessage('extended');
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  test(3.9);
end;为什么结果总是extended?

解决方案 »

  1.   

    procedure TForm1.test(ANum: integer);
    begin
      showmessage('integer');
    end;procedure TForm1.test(ANum: string);
    begin
      showmessage('string');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      test(3);
    end;
    //这样就明显了。
    //楼主的例子有问题。
      

  2.   

    overload是同名没有继承关系的重载
    override是有继承关系的重载
      

  3.   

    overload(重载)可以说更多的是语言的特性,支持同名但不同参的函数调用。而override(覆盖)则是面向对象的特性,子类重写基类的方法。
      

  4.   

    如果你的输入设置的参数为Integer 和extended 就不会有问题了