初學者剛接觸程式語言時常會聽到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"); } 




arrow
arrow
    文章標籤
    Override Overload
    全站熱搜

    橘子亂說話 發表在 痞客邦 留言(2) 人氣()