C# 繼承

      在〈C# 繼承〉中尚無留言

C# 繼承

為何要繼承

底下程式碼中, 宣告了一個Pikachu的類別, 裏面有等級(level), 身高(h), 体重(w) 三個物件變數. 試想, 如果你是任天堂這間公司裏的程式設計師, 老闆叫你要創造出一千多種的神奇寶貝, 而每種神奇寶貝都同樣會有這三個物件變數. 那麼每創造一種神奇寶貝後, 這三個變數不就都要重複寫一次嗎。

 class Pikachu
 {
     int leve;
     double w, h;
 }
 class Eve
 {
     int leve;
     double w, h;
 }

所以是不是有什麼方法, 可以不用重複寫個上千次呢? 此時繼承就可以解決這個問題了. 如下程式碼

 class Pokemon
 {
     private int leve;
     public double w, h;
 }
 class Pikachu : Pokemon
 {
 }
 class Eve:Pokemon
 {
 }

上述的Pokemon宣告了所有類別共通的變數, 然後使用 “:” 繼承給Pikachu 及 Eve, 而在Pikachu及Eve類別中什麼都不用要寫, 就會有level, w, h三個變數了。

繼承後的權限

子類別繼承後, 父類別的public屬性及方法全都會過繼到子類別, 因此在 Main(0中可以直接使用 p1.w.

而private變數呢, 一般人是說沒有繼承給子類別. 但這種說法好像是錯的. 實際上好像是有繼承給子類別,  只是在子類別中無法使用.  這就好比父親給你一個金庫, 但他卻忘了把鑰匙留給你, 所以這個金庫就無法打開.

因為父類別若有private變數, 而此變數需要在子類別中存取的話, 那在父類別就一定要把鑰匙交待下去, 也就是在父類別中要有 public 方法來進行存取.

🔒 底下內容僅限會員閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *