物件的引用可以被:
向上轉換是指乙個從乙個基類指向乙個子類:
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的值為null
is運算子用來檢測引用的轉換是否能夠成功,換句話來說,就是檢測乙個物件是否從某個特定類派生。
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.乙個子型別物件,向上造型 成不同的父型別時,可以使用的功能不一樣 向上造型 指子類型別的變數,可以自...