封裝:
隱藏內部實現細節,防止資料被隨意修改,提公升安全性;由於避免暴露了很多實現細節,只提供對於指定欄位的操作或只提供幾個方法,這樣後續修改維護比較容易。
下面是乙個杜撰的示例
public
class
card
// 下面不提供id的修改,每張卡id只能是一定的,不能被修改了
}
對於學習者來說,降低其理解難度。提高**的復用性。例如:我們常用的函式就是一種封裝,我們只需要傳入指定引數,函式就會返回乙個值。封裝乙個類也是如此。
/**
* 判斷乙個物件是否為person
* @param obj 需要檢測的物件
* @return 是person及其子類返回true,否則返回false
*/public
boolean
isperson
(object obj)
抽象:使用抽象來限定乙個類的所有對外提供的方法。提高**的維護性,可擴充套件性。
例如:生活中的插座,有雙腳插座,有三角插座。我們不在乎未來可能有多少需要連線插座的裝置,我們只是規定,要想用雙腳插座,你得有兩個金屬接觸點等等。這樣,只要我們製造新裝置時,遵循這個雙腳插座的要求就可以了。(這是可擴充套件性)
可以被容易替換(符合可維護):如果我們一直在使用某品牌的插座,突然換一種品牌,基本對我們的裝置不會造成太大影響。
可以有效過濾掉無需關注的資訊。
例如:我們對於車的定義是,能快速移動,能供人操作。
public
inte***ce
car
這樣我們就知道,車是可以快速移動的。我只要見到乙個可以快速移動的非生命體,且可以由人力操控,我們就可以將其定義為車。
至於你說你自己造了乙個車,拿給別人用,他變無需關注你的車是幾個輪胎,什麼引擎,只知道可以拿來操控並且快速移動。這就夠了。他可以把自己之前用的車放在家裡,改用你的車,也是可以達到快速移動的效果的。
而且你也可以在車的基本介面基礎上加上自己的方法,比如,你的車可以敞篷等。
繼承如果我們在兩個及以上類中重複一遍一段**,那我們最好還是將它放在乙個父類中,由子類去繼承它。這樣做的好處顯而易見,能達到復用。
/*
* 房子類,基本的房子都有的元素。
* 只要你想造房子,繼承這個基本的類就可以了
*/public
class
basehouse
// 省略getter和setter
}
但是也有一點,那就是如果父類的更改使得對於特定的子類不能使用時,那就比較不好了。
多型指子類可以替換父類,在實際的**中,呼叫子類的方法實現。上述提到的車可以換,以及房子,都是實現多型的方法。
抽象 封裝 繼承 多型
計算機是表示和處理資訊的機器。為了解決現實世界的問題,需要把現實世界的問題域對映到計算機系統裡。程式語言被用來輔助人們向計算機系統講述現實世界問題域的工具。問題域中具有大量資訊,我們需要用某種信條指導,對這些資訊進行梳理。在物件導向的程式設計正規化下,有四個處理資訊的教條 抽象,封裝,繼承,多型。1...
c 抽象 繼承 封裝 多型
物件導向的基本概念有物件 類 抽象 封裝 繼承 多型 介面等 有的人說物件導向有四大基本特徵,抽象,封裝,繼承,多型,但其實抽象可以丟擲在外,本質來說,物件導向的基本特徵是繼承,封裝,多型。先來說c 中的物件和類 類是物件的抽象,而物件是類的具體化,而要使用類的功能,具體就要先定義乙個物件 例如 c...
抽象 多型 繼承 封裝 介面 單例
物件導向的特徵有哪些方面 抽象 繼承 封裝 多型 一.介面 1.類只能繼承乙個類,但可以實現多個介面 2.介面可以繼承多個介面 3.介面可以放常量,不能放變數 二.多型 a.多型性是指允許不同類的物件對同一訊息作出響應。1.重寫 2.覆蓋 1.1 完全改寫 原有的邏輯要不得 1.2 後面增加 建立型...