c#繼承(抽象類、接口)
c#繼承(抽象類、接口)
new
覆蓋基類中的同名成員。
override
重寫virtual和abstract函數。
abstract
為了定義三角形、矩形類,可以先定義圖形類,再在圖形類的基礎上派生出具體類。圖形類不能被實例化,因此可以定義為抽象類。
抽象類——abstract修飾。無法實例化。
抽象方法——abstract修飾。隻能在抽象類中出現。隻聲明不定義。派生類必須使用override關鍵字重寫抽象類的所有方法。
抽象類——abstract修飾。無法實例化。
抽象方法——abstract修飾。隻能在抽象類中出現。隻聲明不定義。派生類必須使用override關鍵字重寫抽象類的所有方法。
interface
接口是一種約定,是一種繼承方式。接口中隻聲明函數,不給出定義。若一個類繼承了該接口,就一定要給出接口中所有聲明函數的定義。
特性。
接口不能被實例化。接口可以多繼承。
接口中隻能聲明不能定義。
如果基類繼承了接口,那麼派生類都將繼承該接口的實現。
建議接口名字以大寫的I字母開頭。
若多繼承時導致接口成員的二義性,解決方案為:強製類型轉換。
如果基類繼承了接口,那麼派生類都將繼承該接口的實現。
建議接口名字以大寫的I字母開頭。
若多繼承時導致接口成員的二義性,解決方案為:強製類型轉換。
辨析
new用於普通函數的重寫。
override用於virtual和abstract函數的重寫。
虛函數是動態綁定的基礎。
最後更新:2017-04-03 05:38:56