Java轉型用于繼承或者在接口上,實現(xiàn)業(yè)務場景使用。轉型分為向上轉型和向下轉型。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設、張家界網(wǎng)站維護、網(wǎng)站推廣。向上轉型為自動轉型
向下轉型需要強制轉型
向上轉型向上轉型是從一個較專用類型(子類),向通用類型轉換(父類),所以總是安全的。因為向上的父類存放的方法都是公共方法。
父類引用子類對象
Cate obj = new Say();
向上轉型后,obj可以調用子類重寫父類的方法,如果子類沒有重寫父類的方法,才會去調用父類的公共方法,這就是動態(tài)綁定關系。但是向上轉型后不能調用子類的特有方法。
向上轉型可以詳細看這篇
父類引用子類對象
向下轉型將原本屬于父類的對象強制轉換為子類,就叫做向下轉型。向下轉型并不是每個對象都可以的,只有這個對象原本屬于子類向上轉型后的成為父類的對象,才能重新向下轉回變成子類。
向下轉型可能會導致丟失一些屬性信息,所以不推薦向下轉型。除非是業(yè)務需要。
語法
// 子類類型 引用名 = (子類類型)父類引用名
Say Gt = (Say)obj;
通過向下轉型后,子類對象可以調用子類的所有屬性及方法。
Cate obj = new Say();? ? // 父類引用子類對象,屬于向上轉型
// 從向上轉型強制轉為向下
Say Gt = (Say)obj;? ? // 只有向下轉型了,才能使用子類的所有屬性及方法
System.out.println(Gt.Name);? ? // 輸出子類的Name;
Gt.Dt();? ? // 調用子類的方法
class Cate{
? ? String Name = "zhowHua";
? ? public void Met(){
? ? ? ? System.out.println("這是父類");
? ? }
}
class Say extends Cate{
? ? String Name = "JZ";
? ? public void Met(){
? ? ? ? System.out.println("子類重寫父類的方法");
? ? }
? ? public void Dt(){
System.out.println("子類特有的方法");
}
}
判斷對象是否屬于子類instanceof關鍵字
instanceof會返回一個對象是否屬于某個子類的布爾值。如果是則返回true,不是返回false。
我們通過instanceof邏輯判斷后,再對該對象進行強制轉換,保證安全性。
PRO S = new Stud("居正", 27, 95.5);
// 通過instanceof進行判斷S是否Stud的子類對象
if(S instanceof Stud){
? ? Stud Dt = (Stud)S;
}
通過數(shù)組對象遍歷向上轉型可以將所有對象統(tǒng)一放進數(shù)組對象里,進行遍歷
// 創(chuàng)建數(shù)組對象
PRO[] arr = new PRO[6];
arr[0] = new Stud("居正", 27, 95.5);
arr[1] = new Tech("陳剛", 35, 10000);
arr[2] = new Stud("小明", 25, 76.5);
arr[3] = new Tech("李莉", 43, 15000);
for (int i = 0; i< arr.length; i++) {
arr[i].res();? ? // 遍歷數(shù)組調用當前數(shù)組元素的方法
}
通過數(shù)組遍歷批量完成向下轉型for (int a = 0; a< arr.length; a++) {
? ? if(arr[a] instanceof Stud){? ? // 通過instanceof對當前元素進行判斷是否為某個子類
? ? ? ? Stud aa = (Stud)arr[a];? ? // 判斷正確則進行向下轉換。
? ? ? ? ? ? aa.Dt();
? ? }else if(arr[a] instanceof Tech){
? ? ? ? Tech bb = (Tech)arr[a];
? ? ? ? ? ? bb.Dt();
? ? }else{
? ? ? ? System.out.println("異常");
? ? }
}
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧