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 方法來進行存取.
