封裝,抽象,繼承,多型。

2021-09-30 00:02:50 字數 1423 閱讀 6618

封裝:

隱藏內部實現細節,防止資料被隨意修改,提公升安全性;由於避免暴露了很多實現細節,只提供對於指定欄位的操作或只提供幾個方法,這樣後續修改維護比較容易。

下面是乙個杜撰的示例

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 後面增加 建立型...