對於向下轉型,變數是否也會向下轉型

2021-08-13 09:19:37 字數 645 閱讀 2746

package com.hh2;

public class father

public string getname()

public user getuser()

public void fathermethod()

public static void main(string args)   

}class son extends father

public string getname()

public user getuser()

}class user

public user(int age)

嘗試了基本型別還有引用型別這兩種作為成員變數,發現變數是不會發生重寫的,而方法則是會發生變化的。發現向上轉型之後,方法發生了重寫。有的時候會覺得f.getname得到的值是子類的值,那正是因為向上轉型,方法重寫,呼叫的是子類重寫後的方法,而這個方法return的值正式子類的name,實際上

package com.hh1;

public class father

}class son extends father

}實際上父類的name 和 子類的name 就是兩個不同的變數。沒有任何聯絡。想要得到父類的name前提是此變數不是private的。

向下轉型與向下轉型

物件型別的轉換包括向上型別轉換與向下型別轉換。將子類物件賦值給父類型別的變數,這種技術稱為 向上轉型 在物件導向中越上層的類越抽象,越下層的類越具體,越具體的類具有越多的特性,由於向上轉型是將較具體的類轉到較抽象的類,所以它總是安全的。將父類物件賦值給子類型別的變數,這種技術稱為 向下轉型 由於是將...

向下轉型,向上轉型

package cn.dali.code24 向上轉型 父類引用指向子類物件 格式 父類名稱 物件名 new 子類名稱 向下轉型 當我們使用父類引用指向子類物件的時候,我們想把父類物件轉為子類物件時,需要向下轉型 向下轉型就是乙個還原動作。格式 子類名稱 物件名 子類名稱 父類物件 注意 乙個父類有...

向上轉型向下轉型

在引用資料型別中,只有有繼承關係的型別才能進行型別轉換 型別轉換只是轉換看待物件的引用的型別,物件本身沒有也不可能參與轉換 父類引用可以自動指向子類物件,但只能訪問和呼叫到來自於父類的屬性和行為 子類的引用不能指向父類或其它子類物件,就算強轉也會導致執行失敗並丟擲classcastexception...