如果b類是a類的子類或間接子類,當用b類建立物件b並將這個物件b的引用賦給a類物件a時,如:
a a;
a = new b();
ora a;
b b = new b();
a = b;
則稱a類物件a是子類b物件b的上轉型物件。
物件b的上轉型a的實體是有子類b建立的,但是上轉型物件會失去子類b的一些屬性和功能。上轉型物件具有以下特點:
上轉型物件不能操作子類新增加的成員變數,不能使用子類新增的方法。即為較子類b失去一些屬性和功能,這些屬性和功能是新增的。
上轉型物件可以操作子類繼承或隱藏的成員變數,也可以使用子類繼承的或重寫的方法。即為上轉型物件可以操縱父類原有的屬性和功能,無論這些方法是否被重寫。
上轉型物件呼叫方法時,就是呼叫子類繼承和重寫過的方法。而不會是新增的方法,也不是父類原有的方法。
可以將物件的上轉型物件再強制轉換到乙個子類物件,強制轉換過的物件具有子類所有屬性和功能。
物件的上轉型物件
假設animal類是tiger類的父類,當用子類建立乙個物件,並把這個物件的引用放到父類的物件中時,比如 animal a a new tiger 或 animal a tiger b new tiger a b 這時,稱物件a是物件b的上轉型物件 好比說 老虎是動物 物件的上轉型物件的實體是子類負...
物件變數多型性 上轉型物件和下轉型物件
上轉型物件 上轉型物件只能訪問父類中宣告的成員變數和成員方法,不可以訪問子類新增的特有的成員變數和成員方法。如果子類重寫了父類的方法,則上轉型物件呼叫該方法時,必定是呼叫重寫的方法。如果子類重新定義了父類的同名變數,則上轉型物件應用該變數時是父類中的定義的變數,而不是子類中定義的變數。下轉型物件 將...
Java 上轉型物件的說明
父類宣告,子類例項化的物件就是上轉型物件 例如 public class text class father class son extends father上轉型物件的使用規則 1 上轉型物件不能呼叫子類新增的成員變數和方法,失去了這部分的屬性和功能 2 上轉型物件可以操作子類繼承的成員變數 包括...