java面向物件多型特性
一、多型的概念
多型是繼封裝,繼承之後,面向物件的三大特性。
現實事物經常會體現出多種形態,如學生,學生是人的一種,則一個具體的張三同學既是學生也是人,即出現兩種形態。
java作為面向物件的語言,同樣可以描述一個事物的多種形態,java中多型的程式碼體現在一個子類物件(實現類物件)既可以給這個子類(實現類物件)引用變數賦值,又可以給這個子類(實現類物件)的父類(介面) 變數賦值。
父類的引用變數指向子類物件。多型的前提需要有繼承關係或者是實現關係,否則沒法完成多型。在使用多型後的父類引用變數呼叫方法時,會呼叫子類重寫的;
二、多型的定義與使用
多型的定義格式:就是父類的引用變數指向子類的物件;
父類型別變數名 = new 子類物件();
變數名.方法名();
1.普通類的多型定義格式:
父類型別變數名 = new 子類();

2.抽象類多型的定義:
抽象類變數名 =new 抽象類子類();

3.介面多型定義的格式:
介面變數名 =new 介面實現類();

注意: 雖然變數指向子類的物件,但表現的是一個父類的形態,可以呼叫一切父類的方法,子類特有的方法將不能呼叫
三、多型呼叫的注意事項:
編譯:成員變數,成員方法都需要看父類;父類沒有編譯報錯;
執行:成員變數執行父類的成員變數,成員方法執行父類重寫的方法
四、多型的好處與弊端
好處:多型配合繼承子類重寫,提高了程式碼的複用性與擴充套件性
弊端:不能呼叫子類特有的方法
五、向上向下型別轉換
多型本身是子類型別向父類型別向上轉型的過程;
1.向上轉型:
當子類的物件賦值給一個父類的引用時,便是向上轉型,多型本身就是向上轉型的過程
使用格式:父類型別 變數名= new 子類型別();
2.向下轉型:
一個已經向上轉型的子類物件可以使用強制型別轉換的格式,將父類的引用轉換為子類引用,這個過程是向下轉型。直接建立父類物件的無法使用向下轉型;
使用格式:
子類型別 變數名= (子類型別) 父類型別的變數;
六、instanceof 關鍵字
可以通過instanceof關鍵字來判斷某個物件是否屬於某種資料型別;
使用格式:
boolean b= 物件(new ) instanceof 資料型別;
為了讓學習變得輕鬆、高效,今天給大家免費分享一套Java教學資源。幫助大家在成為Java架構師的道路上披荊斬棘。需要資料的歡迎加入學習交流群:9285,05736