在上面的示例中,類 B 既是有效的 B,又是有效的 A。訪問 B 物件時,可以使用強制轉換操作將其轉換為 A 物件。強制轉換不會更改 B 物件,但您的 B 物件檢視將限制為 A 的資料和行為。將 B 強制轉換為 A 後,可以將該 A 重新強制轉換為 B。並非 A 的所有例項都可強制轉換為 B,只有實際上是 B 的例項的那些例項才可以強制轉換為 B。如果將類 B 作為 B 型別訪問,則可以同時獲得類 A 和類 B 的資料和行為。物件可以表示多個型別的能力稱為多型性。有關更多資訊,請參見多型性。有關強制轉換的更多資訊,請參見強制轉換
類可以從其他類中繼承。這是透過以下方式實現的:在宣告類時,在類名稱後放置一個冒號,然後在冒號後指定要從中繼承的類(即基類)。例如:
public class A
{
public A() { }
}
public class B : A
{
public B() { }
}
新類(即派生類)將獲取基類的所有非私有資料和行為以及新類為自己定義的所有其他資料或行為。因此,新類具有兩個有效型別:新類的型別和它繼承的類的型別。
在上面的示例中,類 B 既是有效的 B,又是有效的 A。訪問 B 物件時,可以使用強制轉換操作將其轉換為 A 物件。強制轉換不會更改 B 物件,但您的 B 物件檢視將限制為 A 的資料和行為。將 B 強制轉換為 A 後,可以將該 A 重新強制轉換為 B。並非 A 的所有例項都可強制轉換為 B,只有實際上是 B 的例項的那些例項才可以強制轉換為 B。如果將類 B 作為 B 型別訪問,則可以同時獲得類 A 和類 B 的資料和行為。物件可以表示多個型別的能力稱為多型性。有關更多資訊,請參見多型性。有關強制轉換的更多資訊,請參見強制轉換
結構不能從其他結構或類中繼承。類和結構都可以從一個或多個介面中繼承。有關更多資訊,請參見介面。