面向物件的三大基本特徵
阿新 • • 發佈:2021-06-17
封裝(Encapsulation)
所謂封裝,也就是把客觀事物封裝成抽象類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不0可信的進行訊息隱藏。
簡單的說,一個類就是一個封裝了資料以及操作這些資料的程式碼的邏輯實體。在一個物件內部,某些程式碼或者某些資料可以是私有的,不能被外界訪問。通過這種方式,物件對內部資料提供了不同級別的保護,已防止程式中無關的部分意外的改變或錯誤的使用了物件的私有部分。
封裝舉例
如我們想要定義一個矩形,先定義一個Rectangle類,並通過封裝的手段放入一些必備資料。
/** * 矩形 */ class Rectangle { /*** 設定矩形的長度和寬度 */ public Rectangle(int length, int width) { this.length = length; this.width = width; } /** * 長度 */ private int length; /** * 寬度 */ private int width; /** * 獲得矩形面積 * * @return*/ public int area() { return this.length * this.width; } }
繼承(Inheritance)
繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需要新編寫原來的類的情況下對這些功能進行擴充套件。
通用繼承建立的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”。繼承的過程,就是從一般到特殊的過程。
繼續舉例
我們想要定義一個正方形,以為已經有了矩形,所以我們可以直接繼承Rectangle類,因為正方形是矩形的一種特例。
/** * 正方形,繼承自矩形*/ class Square extends Rectangle { /** * 設定正方形邊長 * * @param length */ public Square(int length) { super(length, length); } }
多型(Polymorphism)
所謂多型就是指一個類例項的相同方法在不同情形有不同表現形式。多型機制使具有不同內部結構的物件可以共享相同的外部介面。
這意味著,雖然針對不同物件的具體操作不同,但通過一個公共的類,它們(那些操作)可以通過相同的方式予以呼叫。
最常見的多型就是將子類傳入父類引數中,執行時呼叫父類方法時通過傳入的子類決定具體的內部結構或行為。