override與overload的區別

zengbo0710發表於2007-05-21

過載(Overload)
過載---類中定義的方法可能有不同的版本
public book withdraw(double amt,string name)
public double withdraw(double amt)
特點:方法名必須相同
引數列表必須不相同
返回值型別可以不相同

虛擬函式

宣告虛方法
使用virtual關鍵字 public virtual bool withdraw(...)
呼叫虛方法,執行時將確定呼叫物件是什麼類的例項,並呼叫適當的覆寫的方法。
虛方法可以有實現體

覆寫(overwrite)
子類為滿足自己的需要來重複定義某個方法的不同實現--覆寫
通過使用關鍵字override來覆寫
public override bool withdraw()
只有虛方法和抽象方法才能覆寫

特點:

相同的方法名稱
相同的引數列表
相同的返回值型別

區別
Item Override覆寫 Overload過載
位置 存在於繼承關係的類中 存在於同一類中
方法名 相同 相同
引數列表 相同 必須不同
返回值 相同 可以不相同

 抽象方法:
必須被派生類覆寫的方法
可以看成是沒有實現體的虛方法
如果類包含抽象方法,那麼類就必須定義為抽象類,不論是否還包含其他一般方法
public abstract bool withdraw()


 

相關文章