C 向上轉型和向下轉型

2021-08-27 15:15:26 字數 340 閱讀 1418

子類物件賦給父類型別的變數,稱為向上轉型。

父類型別的物件賦給子類型別的變數,稱為向下轉型。

上個例子,vegetable是父類,potato是子類。

}class potato : vegetable

}class program}}

總結:1)對於自定義類而言,向上轉型是c#語言提供的機制。

2)向下轉型是形式上的,本質上父類物件是無法轉為子類物件的,除非這個所謂的父類物件是之前從子類物件向上轉型而來。

3)向下轉型語法上要強制型別轉換,和其他強制型別轉換一樣,轉換是否成功只能在執行期判斷。

4)向上轉型和向下轉型是理解c#協變和抗變的基礎。

向上轉型和向下轉型

向上轉型 子類向上轉型為父類 注意點 轉型後父類與子類的同名函式中,子類的函式可以覆蓋父類的函式,但子類自己定義的函式將被隱藏 class a public void a2 class b extends a public void b2 public class c 向下轉型 父類被強制轉型為子類...

向上轉型和向下轉型

例如我現在有兩個類,他們之間是繼承的關係 class animal class dog extends animal void bark 通俗地講,向上轉型就是把子類的物件轉化為父類的物件,如 animal animal new dog 但是注意,向上轉型後,父類只能訪問與子類共有的方法,如以下 就...

向上轉型和向下轉型

在j a中,繼承是乙個重要的特徵,通過extends關鍵字,子類可以復用父類的功能,如果父類不能滿足當前子類的需求,則子類可以重寫父類中的方法來加以擴充套件。而在應用中就存在著兩種轉型方式。比如有父類parent,子類child1.向上轉型 父類的引用指向子類的例項parent p new chil...