跳轉到內容

C# 初學者/繼承

來自華夏公益教科書,開放的書籍,開放的世界

由於這是關於程式設計入門,我們不想用太多複雜的東西來迷惑你。

你可能會看到類被宣告成這樣

class MyClass : Form 	
{
	...//
}

而不是像這樣

class MyClass
{
	...//
}

人類繼承

你從父母那裡繼承特徵是很常見的。你可能擁有你母親的說話方式或你父親的鼻子。這並不意味著你與你的父母完全一樣,但當你出生時,某些特徵會“內建”。

程式碼繼承

當我們編寫程式碼時,從現有的類繼承一大堆能力可能會有用。讓我們舉個例子。有兩個定義的類“動物”和“鳥”,但“鳥”類從動物類繼承。

class Animal
{
	public string kindOfAnimal;
	public string name;
	....
	
}

class Bird : Animal	// “Bird” class inherits from “Animal” class
{
	public string featherColor;
	
}

在現實世界中,鳥是一種動物,但它具有一些不適用於所有動物的特徵。因此,鳥類具有動物的所有特徵以及一些額外的特徵是有意義的。在本例中,我們僅為鳥類識別了一個特殊欄位——羽毛顏色。我們實際上是在說“我正在定義一個名為“鳥”的新類,但它也必須從“動物”類繼承所有內容”。

何時使用繼承

繼承最適合用於以下情況:你想要實現的目標大部分可以由現有類完成,你只是想擴充套件或自定義它。在以下示例中,類“吉他手”從類“音樂家”繼承了三個欄位,並添加了兩個自己的欄位。冒號“:”是告訴計算機使新類(吉他手)從冒號右側寫入的類繼承的部分。

public class Musician
{
	public string name;
	public int ageInYears;
        ....\\
}

public class Guitarist : Musician
{
	public string guitarType;
	public string guitarBrand;
}

Guitarist g = new Guitarist();
g.name = "JOHN ABC";
g.ageInYears = 25;
g.guitarType = Acoustic;
g.guitarBrand = Gibson;

當我們建立一個“吉他手”例項時,我們可以立即訪問音樂家吉他手的欄位(只要它們不是私有的)。

華夏公益教科書