物件的向上轉型
什麼是向上轉型:將子類的物件賦值給父類的引用。
1、乙個引用可以呼叫哪些變數(變數和函式),取決於這個引用的型別中變數的定義。
p這個引用是person型別,person型別中定義了name和age屬性,已經introduce方法。
p可以呼叫的變數只能是person類中已經定義的變數的型別,name和age,但沒有address.它不可以引用student類中其餘的屬性和方法。
2、乙個引用呼叫的是哪乙個方法,取決於這個引用所指向的物件。
p呼叫的方法是student類中的introduce()方法,而不是person類中的方法。但是,又因為它本身沒有address這個成員變數,因此address的值會是null.
3、向上轉型不會失敗,但是前提是父子關係(繼承)。
class person }
class student extends person
void introduce(string name,int age )
}class test6
}列印結果:
my name is :ff,age is :10
my adress is :null
*/
Java向上向下轉型
向上轉型 b extends a,a a new b 就是向上轉型,此時a的型別為a,指向b,可以理解為把子類物件轉換成了父類物件,即父類的引用指向子類的物件,此時a不能呼叫子類自己新建的方法和變數,但若子類中重寫了父類的某個方法,那麼在呼叫這個方法時,將會呼叫子類的這個方法。向上轉型不存在風險 向...
Java 多型(向上轉型)
先來看一段 class baseclass public void test public class subclass extends baseclass public void sub public static void main string args 說明 當把乙個子類物件直接賦給父類的引...
物件轉型(向上轉型和向下轉型)
物件轉型分為兩種 一種叫向上轉型 父類物件的引用或者叫基類物件的引用指向子類物件,這就是向上轉型 另一種叫向下轉型。轉型的意思是 如把float型別轉成int型別,把double型別轉成float型別,把long型別轉成int型別,這些都叫轉型。把一種形式轉成另外一種形式就叫轉型。除了基礎資料型別的...