2012年7月28日 星期六

Overriding & Overloading

這兩個物件導向名詞,時常讓人搞混,
有些會程式的人可能會寫,但卻解釋不清。


簡而言之
Overloading是指在同一個類別之下,定義相同名稱,
但因為傳入的引數不一樣,而呼叫到不同個函式。


Overriding是指在子類別繼承父類別的狀況下,
兒子要修改寫老爸同名、同引數的函式。

Overloading的範例如下:
int Search(int a, int key);
int Search(int[] a, int inIndex);
隨著傳入Search函式的引數不同,呼叫的函式也不同。

Overriding的範例如下:
class employee{
    public int bonus(){
      return money;
    }
}
class manager extends employee{
    public int bonus(){
        return money*2;
    }
}
同樣是bonus的函式,雖然回傳值不同,但是回傳值的型態還是一樣,
就是Overriding。

沒有留言:

張貼留言