Java的三大特性
Java的三大特性
封裝: 隱藏內部功能的具體實作,只保留和外部交流資料的介面,將變化隔離,便于使用,提高復用性和安全性,例:汽車與發動機,不必知道發動機的實作原理,只需使用汽車給予的介面,插入鑰匙,
繼承: 一個物件可以從它的父類繼承所有的通用的屬性和方法,并在無需重新撰寫原來的類的情況下對這些功能進行擴展;最大的好處是實作代碼的高效重用,
- 關于繼承如下3點請記住:
1.子類擁有父類非 private 的屬性和方法,
2.子類可以擁有自己屬性和方法,即子類可以對父類進行擴展,
3.子類可以用自己的方式實作父類的方法,
多型: 所謂多型就是指程式中定義的參考變數所指向的具體型別和通過該參考變數發出的方法呼叫在編程時并不確定,而是在程式運行期間才確定,即一個參考變數到底會指向哪個類的實體物件,該參考變數發出的方法呼叫到底是哪個類中實作的方法,必須在由程式運行期間才能決定,
多型的實作
Java實作多型有三個必要條件:繼承、重寫、向上轉型,
1.繼承:在多型中必須存在有繼承關系的子類和父類,
2.重寫:子類對父類中某些方法進行重新定義,在呼叫這些方法時就會呼叫子類的方法,
3.向上轉型:在多型中需要將子類的參考賦給父類物件,只有這樣該參考才能夠具備技能呼叫父類的方法和子類的方法,
只有滿足了上述三個條件,我們才能夠在同一個繼承結構中使用統一的邏輯實作代碼處理不同的物件,從而達到執行不同的行為,
對于Java而言,它多型的實作機制遵循一個原則:當超類物件參考變數參考子類物件時,被參考物件的型別而不是參考變數的型別決定了呼叫誰的成員方法,但是這個被呼叫的方法必須是在超類中定義過的,也就是說被子類覆寫的方法,
多載(Overload)和重寫(Override)的區別,多載的方法能否根據回傳型別進行區分?
方法的多載和重寫都是實作多型的方式,區別在于前者實作的是編譯時的多型性,而后者實作的是運行時的多型性,
多載:發生在同一個類中,方法名相同引數串列不同(引數型別不同、個數不同、順序不同),與方法回傳值和訪問修飾符無關,即多載的方法不能根據回傳型別進行區分
重寫:發生在父子類中,方法名、引數串列必須相同,回傳值小于等于父類,拋出的例外小于等于父類,訪問修飾符大于等于父類(里氏代換原則);如果父類方法訪問修飾符為private則子類中就不是重寫,
年輕轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/467904.html
標籤:Java
