亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

15th_JavaSE筆記_對象轉型(casting)

2019-11-11 00:17:29
字體:
來源:轉載
供稿:網友
一、父類的引用類型變量可以指向其子類的對象。如上文中:Cat c = new Cat();Object obj = c;二、父類的引用不可以訪問其子類對象新增加的成員(屬性和方法)。如上例,我們不能把obj當成一只貓去訪問,貓自己獨有而Object類沒有的成員,obj就不能訪問了。三、可以使用"引用變量 instanceof 類名"來判斷該引用型變量所"指向"的對象是否屬于該類或該類的子類。
public class Test {	public static void main(String[] args) {		Object obj = new Object();		Cat cat = new Cat();		System.out.PRintln(cat instanceof Cat);//true		System.out.println(cat instanceof Object);//true		System.out.println("----------------------");		System.out.println(obj instanceof Object);//true		System.out.println(obj instanceof Cat);//false		System.out.println("----------------------");		/* 父類引用指向子類對象 */		obj = cat;		System.out.println(obj instanceof Object);//true		System.out.println(obj instanceof Cat);	//true	}}class Cat {	String eyesColor;}

運行結果已注釋在打印語句之后。

四、父類引用指向子類對象稱作向上轉型(upcasting),父類引用類型變量強制類型轉換為子類引用類型變量稱為向下轉型(downcasting).

見下例:
class Animal {	public String name;	Animal(String name) {		this.name = name;	}}class Cat extends Animal {	public String eyesColor;	Cat(String name, String eyesColor) {		super(name);		this.eyesColor = eyesColor;	} }class Dog extends Animal {	public String furcolor;	Dog(String name, String furColor) {		super(name);		this.furcolor = furColor;	}}public class Test {	public static void main(String[] args) {		Animal a = new Animal("name");		Cat c = new Cat("catname", "blue");		Dog d = new Dog("dogname", "black");				/* 引用型變量所指向的對象屬于該類 */		System.out.println(a instanceof Animal);//true				/* 引用型變量所指向的對象屬于該類的子類 */		System.out.println(c instanceof Animal);//true		System.out.println(d instanceof Animal);//true				/* false!父類引用指向的父類對象沒有指向子類對象 		 * 因此不屬于子類		 */		System.out.println(a instanceof Cat);//false				/*		 * a可以看做是一個指向Dog類對象的一個引用,但由于a原來是		 * Animal這個父類的對象的引用,因此a并不是真正意義上的		 * Dog類的對象的引用,a無法訪問Dog類新增的成員。		 * 總結:a是一個只能訪問父類部分、不能訪問子類部分的指向子類對象的引用。 		 */		a = new Dog("bigyellow", "yellow");		//向上轉型		System.out.println(a.name);//bigyellow				/*		 * 雖然父類引用可以指向子類對象,		 * 但是父類引用不能訪問其子類對象新增加的成員(屬性和方法)		 * System.out.println(a.furColor);//!error		 */				/*		 * 由于a是一個只能訪問父類部分、不能訪問子類部分的指向子類對象的引用。		 * 但a在訪問子類部分內容時是受限的,但a的確是指向Dog類的對象,該		 * 對象屬于Animal的子類Dog類		 */		System.out.println(a instanceof Animal);//true				/*		 * 引用a的確是指向Dog類對象的,該對象屬于Dog類		 */		System.out.println(a instanceof Dog);//true		Dog d1 = (Dog)a;	//向下轉型,強制類型轉換		System.out.println(d1.furcolor);//yellow	}}

運行結果已注釋在打印語句之后。

該程序的部分內存圖如下圖所示:

Animal a = new Animal("name"); //引用a本來是指向一個Animal類對象的。

a = new Dog("bigyellow", "yellow"); //讓父類引用a指向子類對象,稱為向下轉型(downcasting)。

a所指向的這個子類對象中:父類成員變量name初始值為"bigyellow",子類成員變量furColor初始值為"yellow"。

雖然a指向了子類Dog對象,但它是Animal類型的引用,所以即便指向子類Dog對象,a也只看到了其中的父類部分(如圖中虛線箭頭所示)。

因此只能通過a.name的方式訪問父類部分的name,而無法通過a.furColor的方式去訪問子類部分的furColor。

Dog d1 = (Dog)a; //將a從Animal類型強制類型轉換為Dog類型,從父類類型轉換到子類類型,稱為向下轉型(downcasting)。

在引用d1與a一樣可以指向該對象時,因為引用d1是Dog類型的,它當然可以看到整個對象(包括子類部分),所以d1.furColor是合法的。


上一篇:關于java項目打包

下一篇:java IO流

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
992tv在线成人免费观看| 亚洲欧美精品一区二区| 欧美华人在线视频| 91久久国产精品91久久性色| 亚洲午夜久久久久久久| 国产综合在线视频| 亚洲夜晚福利在线观看| 国产成人啪精品视频免费网| 韩国美女主播一区| 国产免费亚洲高清| 欧美国产日韩一区二区在线观看| 国产精品久久视频| 欧美成人免费全部观看天天性色| 性欧美在线看片a免费观看| 性视频1819p久久| 这里只有精品视频在线| 欧美激情网友自拍| 久久久久久久久久久亚洲| 国产日韩在线一区| 色在人av网站天堂精品| 国产91色在线|| 国产精品久久久999| 亚洲国模精品一区| 色综合亚洲精品激情狠狠| 97在线视频免费| 97香蕉久久夜色精品国产| 亚洲综合自拍一区| 一区二区亚洲欧洲国产日韩| 精品一区精品二区| 97香蕉超级碰碰久久免费的优势| 日韩午夜在线视频| 亚洲欧美激情另类校园| 亚洲自拍偷拍色片视频| 亚洲色图日韩av| 亚洲电影av在线| xvideos国产精品| 欧美日韩色婷婷| 欧美极品xxxx| 亚洲欧美日韩精品| 欧美激情视频播放| 欧美激情高清视频| 亚洲aa在线观看| 国产午夜精品一区理论片飘花| 中文字幕免费国产精品| 成人免费视频97| 欧美成人精品一区二区三区| 91av视频导航| 亚洲色在线视频| 亚洲精品av在线播放| 性欧美在线看片a免费观看| 欧美福利在线观看| 国产精品美女av| 欧美午夜宅男影院在线观看| 欧美日韩在线视频一区| 91国内产香蕉| 国模精品视频一区二区三区| 国产精品视频公开费视频| 欧美大片网站在线观看| 国产亚洲一区精品| 国产不卡精品视男人的天堂| 国产精品第七十二页| 91久久国产精品91久久性色| 久久九九全国免费精品观看| 一本色道久久88亚洲综合88| 色爱精品视频一区| 日韩精品极品在线观看播放免费视频| 色偷偷综合社区| 欧美日韩成人黄色| 2019中文字幕在线观看| 91在线|亚洲| 亚洲肉体裸体xxxx137| 国产精品久久久久久久久久99| 日韩av在线网页| 国产91在线视频| 中文字幕精品—区二区| 成人免费网站在线| 欧美野外猛男的大粗鳮| 欧美精品久久久久久久| 日韩av片永久免费网站| 国产精品露脸自拍| 日韩在线播放一区| 欧美精品videossex性护士| 成人免费视频网| 亚洲综合av影视| 成人免费视频a| 久久精品国产99国产精品澳门| 欧美最猛性xxxxx免费| 亚洲网站视频福利| 久久夜色撩人精品| 精品美女久久久久久免费| 日韩在线观看免费高清| 久久精品这里热有精品| 欧美性xxxx极品hd欧美风情| 久久久久久网址| 亚洲最大在线视频| 精品人伦一区二区三区蜜桃网站| 日韩欧美一区二区三区久久| 亚洲成avwww人| 亚洲综合av影视| 欧美成人在线影院| 精品久久中文字幕久久av| 国产精品精品久久久| 亚洲精品乱码久久久久久按摩观| 亚洲精品视频播放| 亚洲欧洲在线播放| 久久成人精品电影| 欧美一级淫片播放口| 久久免费精品日本久久中文字幕| 岛国av一区二区三区| 日韩av免费一区| 午夜剧场成人观在线视频免费观看| 国产精品综合不卡av| 日韩精品在线视频| 欧美大片欧美激情性色a∨久久| 2019av中文字幕| 91影视免费在线观看| 国产丝袜一区视频在线观看| 国产精品一区二区电影| 欧美小视频在线观看| 国产成人一区二区三区| 亚洲欧美综合另类中字| 日本欧美精品在线| 国产精品欧美风情| 色偷偷亚洲男人天堂| 精品成人乱色一区二区| 国产精品丝袜一区二区三区| 国产成人综合精品在线| 欧美性猛交xxxxx水多| 亚洲欧美日韩区| 日韩精品在线看| 中文字幕欧美国内| 中文字幕亚洲欧美日韩高清| 成人午夜激情免费视频| 久久精品国产精品| 成人网在线免费观看| 亚洲自拍偷拍福利| 热re91久久精品国99热蜜臀| 日韩av电影在线免费播放| 国产精品入口福利| 北条麻妃在线一区二区| 国产精品嫩草影院一区二区| 97人人爽人人喊人人模波多| 久久韩国免费视频| 亚洲福利在线视频| 综合136福利视频在线| 日韩高清av一区二区三区| 久久亚洲私人国产精品va| 日韩欧美中文字幕在线播放| 91精品视频在线播放| 国产精品国语对白| 国产一区二区三区中文| 91亚洲国产成人久久精品网站| 欧美视频中文在线看| 欧美日韩国产成人| 性色av一区二区三区| 国产精品久在线观看| 久久国产精品影片| 亚洲精品一区二区三区不| 欧美主播福利视频| 欧美性猛交xxxx免费看漫画| 色噜噜狠狠狠综合曰曰曰88av| 亚洲人成电影网站色| 欧美精品18videosex性欧美| 欧美多人爱爱视频网站|