「程序多重定义」(Function Overloading)又称为「程序重复定义」。它让对象更具弹性﹐能处理多样化之讯息。这观念源于日常生活经验。例如﹐我们常说﹕

                     绣球

                     老鼠

                    

 

猫玩绣球与玩老鼠之玩法不尽相同。但何以使用同一动词──「玩」呢﹖也许人们认为其目的是一致的﹕猫获得快乐。上述的「猫」为类别﹐而某只猫是对象。例如﹕加菲猫是对象﹐它可接受讯息──

 

                 

 

   其中﹐「玩」代表着动作和过程﹐而绣球、老鼠及鱼则是「玩」之对象。回想﹐在程序中﹐「程序」代表一项动作及过程﹐而「自变量值」则为程序之处理对象。因之﹐上图可表示为──

                   

   OOP 程序设计之理想为﹕让程序之写法与人们日常生活经验吻合﹐于是设计个Play()程序﹐让它能接受不同型态之资料做为处理对象。上述Play()已具「多重定义」﹐其特点是──

       1.  程序名称相同﹐例如﹕Play()。

       2.  自变量不同﹐例如﹕老鼠和鱼。

 

因猫玩绣球和玩老鼠的方法略有不同﹐例如老鼠是活的而绣球是死的﹐其玩的过程亦不尽相同。为了表示动作与过程之不同﹐Play()程序内之指令也有所不同。例如﹕

 

          

 

VB程序时﹐其格式必须是──

 

             Class Cat

                Public Overloads Sub Play(绣球)

                   指令

                   .......

                End Sub

                Public Overloads Sub Play(老鼠)

                   指令

                   .......

                End Sub

                Public Overloads Sub Play(鱼)

                   指令

                   .......

                End Sub

             End Class

 

这就是「程序成员多重定义」了。Cat 类别含有三种Play()之定义﹐其自变量不同而且内部指令亦不相同。于是Play()程序能接受不同之自变量﹐并执行不同之指令﹐使得Play()具弹性了。请看个程序──

 

ex01.bas

Imports System.ComponentModel

Imports System.Drawing

Imports System.WinForms

-------------------------------------------------------

Class Example

   Public Overloads Sub Display()<