初學者剛接觸程式語言時常會聽到Override與Overload,但常分不清其中的差別,我以兩個簡單的C++範例說明一下。
Override 覆載
建立一個Class 命名為Shape,並且他有一個public function為getShapeType,此時再建立一個class命名為Triangle,並繼承Shape,這時候改寫從Shape繼承下來的function,如此一來,原本class Shape呼叫getShapeType()的時候會回傳字串"Shape",而class Triangle繼承Shape並Override getShapeType(),因此變成回傳字串"Triangle"
class Shape { public void getShapeType() { return "Shape" ; } } class Triangle : Shape { public void getShapeType() { return "Triangle" ; } }
Overload 多載
Overload其實就是相同的function名稱,會根據你傳入的參數不同而呼叫相對應的function,以這個例子來看,當我呼叫Method(999)時,這時候會印出字串"Method1",而當我呼叫Method(999, 1000)時,會印出字串"Method2"
public void Method(int param1) { Console.WriteLine("Method1"); } public void Method(int param1, int param2) { Console.WriteLine("Method2"); }
文章標籤
全站熱搜
留言列表