C 型別轉換和引用轉換

2022-07-24 09:33:10 字數 1527 閱讀 6059

物件的引用可以被:

向上轉換是指乙個從乙個基類指向乙個子類:

house house = new house();

asset asset = house;

house類是asset的子類

這個時候隱式的向上轉換就發生了

asset類的乙個物件asset指向了它的子類house的物件house

console.writeline(asset == house); // true
由於兩個物件指向同乙個類house所以他們是相等的。

對於asset來說訪問到house的name屬性是非常簡單的

但是就沒法訪問到mortgage這個屬性就沒那麼容易了,因為mortgage中指存在了name並不存在mortgage這個屬性

向下型別轉換是指乙個子類的物件指向其基類

house h = new house();

asset asset = h;

house house = (house)asset;

向下轉換需要顯示說明,因為可能存在問題

stock stock = new stock();

asset asset = stock;

house house = (house)asset;

編譯時會報錯,asset不是house型別所以無法強制轉換為house型別

as運算子在向下轉換時嘗試把基類的物件轉換成子類的物件,若轉換發生錯誤時,就會賦值null

stock stock = new stock();

asset asset = stock;

house house = asset as house;

if (house != null)

輸出為空,說明house的值為nullis運算子用來檢測引用的轉換是否能夠成功,換句話來說,就是檢測乙個物件是否從某個特定類派生。

static void main(string args)

;asset asset = mfhouse;

if (asset is house)

}

引用型別轉換

父類package oop.demo08 public class person 子類package oop.demo08 public class student extends person 測試public class public static void main string args 型...

mysql型別轉換c 型別轉換 C 型別轉換

一 簡介 型別轉換 把資料從一種型別轉換另一種型別 我們要求等號兩邊參與運算子必須型別一致,如果不一致,滿足下列條件會發生自動型別轉換或者隱式型別轉換。1.兩種型別相容 例如 int和double 相容 都是數字型別 2.目標型別大於源型別 double int 顯示型別轉換 1.兩種型別相相容 i...

引用型別強制轉換

多型表現在兩個方面 1.乙個父型別的引用在指向不同的物件時會有不同的實現 如 iunionpay atm atm new atmabc atm new atmcbc 總結,執行時,方法執行看物件!2.乙個子型別物件,向上造型 成不同的父型別時,可以使用的功能不一樣 向上造型 指子類型別的變數,可以自...