物件轉型
1、乙個基類的引用型別變數可以「指向」其子類的物件。
2、乙個基類的引用不可以訪問其子類物件新增加的成員(屬性和方法)。
3、可以使用 引用變數 instanceof 類名 來判斷該引用型變數所「指向」的物件是否屬於該類或該類的子類。
4、子類的物件可以當做基類的物件來使用稱作向上轉型(upcasting),反之稱為向下轉型(downcasting)。
舉例:1、向上轉型
定義animal動物類
public abstract class animal//定義乙個抽象的動物父類
定義dog狗類public class dog extends animal
public void eat()//子類還有自己特有的eat方法
}
定義test測試類
public class test
}
小結
1、將乙個父類的引用指向乙個子類物件,稱為向上轉型,自動進行型別轉換。
2、父類引用變數呼叫的是子類覆蓋或繼承父類的方法,不是父類的方法。
3、父類引用變數無法呼叫子類特有的方法。
2、向下轉型
定義animal動物類
public abstract class animal//定義乙個抽象的動物父類
定義dog狗類
public class dog extends animal
public void eat()//子類還有自己特有的eat方法
}
定義cat貓類
public abstract class cat extends animal//繼承自animal類,沒重寫父類方法,還是抽象類
定義test測試類
public class test
小結
1、轉型時轉的型別必須是父類物件所指的真實子類物件,不是任意的強制型別轉換。
總結
物件轉型可以使父類物件的引用可以指向子類物件,給程式帶來了比較好的可擴充套件性:我們可以在乙個方法的引數裡面定義父類的引用,然後實際當中傳的時候傳的是子類的物件,然後我們再在方法裡面判斷這個傳過來的子類物件到底屬於哪個子類,然後再去執行這個子類裡面的方法或者呼叫這個子類裡面的成員變數,因此程式的可擴充套件性比單獨定義好多個方法要好一些。不過這個可擴充套件性還沒有達到最好,使用多型就可以讓程式的擴充套件性達到極致。(馬士兵老師)
java之上轉型物件
1.上轉型物件 上轉型物件是將子類的物件賦值給父類的引用,形如 superclass sup subclass 上轉型物件不能使用子類新增成員 包括成員變數,成員方法 只能使用子類重寫父類的方法,被子類隱藏的父類變數 子類未重寫的父類方法,未被隱藏的父類成員變數.示例運用 多型的運用 假如你在乙個物...
java 物件的轉型
為什麼要寫這篇部落格 物件的轉型是物件導向多型性的體現,必須深刻理解。向上轉型 父類引用指向子類物件 person p new student 向下轉型 將 指向子類物件的父類引用 強制轉換為子類引用 person p new student student s student p 乙個引用能夠呼叫...
Java之物件轉型
1.乙個基類的引用型別可以指向其子類的物件 2.乙個基類的引用指向子類的物件時不可以訪問其子類物件新增加的成員 屬性和方法 3.可以引用 變數 instanceof 類名 來判斷該引用變數所指向的物件是否屬於該類或該類的子類 4.子類物件可以當做基類物件來使用,稱為向上轉型 upcasting 反之...