C 中子類與父類的相互轉換

2021-08-01 23:11:38 字數 972 閱讀 8693

1.父類不能直接強制轉換成子類

2.子類可以強制轉換成父類,但是在父類中只能取父類的字段與方法因此在乙個父類對應多個子類的時候,不知道具體是哪個子類的時候,就可以先宣告乙個父類的型別。(如例1)

3.由1,2知,父類不能直接強制轉換成子類,但是可以通過間接的方法進行轉換,例1中有所體現:將子類轉換成父類,然後再把父類轉換成子類,如例2。

特別說明:雖然可以通過間接方式將父類轉成子類,但實際用處不大,因為需要乙個臨時的子類來進行轉換,因為其實可以直接在子類直接轉換,所以實際用處不大。

(下例只適用於從棧制到堆的行為,即裝箱拆箱)

例一:

using system;  

using system.collections.generic;

using system.linq;

using system.text;

public

class son:parent

} public

class son2 : parent

} class program

console.readline();

} }

}

例二:

using system;  

using system.collections.generic;

using system.linq;

using system.text;

} public

class parent

public

class son:parent

} public

class son2 : parent

} }

C 中子類和父類之間的相互轉換

學c 的時候有時候會對類型別之間的轉換感覺到些許的迷惑,下面記錄一點點理解和認識 首先需要明白一點 只有子類轉換成父類,父類不可能轉換成子類。因為子類是從父類繼承而來,子類中包含父類中所有成員。而如果父類可以轉換成子類,意味著將子類中將有一部分是未知的成員。這是不被允許的。在子類轉換成父類的時候,也...

C 中子類和父類之間的相互轉化

c 父類和子類物件指標之間的轉換,有示例 c 父類和子類物件指標之間的轉換 由子類向父類轉換很簡單,用預設轉換.例如 cwnd pwnd cwnd childview 由父類向子類,用dynamic cast.使用dynamic cast是有限制的.例如對如下語句 cpoint3d p1 dynam...

C 子類父類之間相互轉換的問題

為了方便演示,這裡一共有兩個簡單的類 父類 動物類 animal 動物類 父類 public class animal 頭 public string head 子類 狗類 dog 狗類 繼承動物類 public class dog animal 建構函式 public dog 第一步 如果我們將d...