javaSE基礎篇之多型應用場景概述
阿新 • • 發佈:2021-08-12
1. 多型陣列
當建立多個不同的子類物件, 而又想統一處理這批物件時, 就可以使用多型陣列.
Person[] arr = {new Student(), new Teacher()};
2. 多型引數
在設計方法時, 有的方法內部需要用到另外的類的物件, 但是在設計方法時, 又不需要關心究竟是哪個物件, 只關心這些實參物件都是某個型別的, 此時, 方法的引數的型別就可以寫成父類型別的引數,這樣的方法的引數就是多型引數.
public void test(Person p) { // 這個方法的引數p的具體型別未知
System.out.println(p.say());
}
main() {
test(new Chinese()); // 在實際呼叫多型引數方法時, 可以傳入任意本類或子類型別的物件
test(new American());
}
x instanceof A:檢驗x是否為類A的物件,返回值為boolean型。
public class Graduate extends Person {…}
——————————————————————-
public void method1(Person e) {
if (e instanceof Person)
// 處理Person類及其子類物件
if (e instanceof Student)
//處理Student類及其子類物件
if (e instanceof Graduate)
//處理Graduate類及其子類物件
}
物件型別轉換 (Casting )
- 要求x所屬的類與類A必須是子類和父類的關係,否則編譯錯誤。
- 如果x屬於類A的子類B,x instanceof A值也為true。
-
基本資料型別的Casting:自動型別轉換:小的資料型別可以自動轉換成大的資料型別
- 強制型別轉換:可以把大的資料型別強制轉換(casting)成小的資料型別
- 對Java物件的強制型別轉換稱為造型從子類到父類的型別可以自動進行從父類到子類的型別轉換必須通過造型(強制型別轉換)實現無繼承關係的引用型別間的轉換是非法的在造型前可以使用instanceof操作符測試一個物件的型別