基礎知識 封裝 繼承 多型 抽象

2022-05-26 15:48:09 字數 2138 閱讀 5511

封裝:是物件導向方法的重要原則,就是把物件的屬性和行為(資料)結合為乙個獨立的整體,並盡可能隱藏物件的內部實現細節,就是把不想告訴或者不該告訴別人的東西隱藏起來,把可以告訴別人的公開,別人只能用我提供的功能實現需求,而不知道是如何實現的。增加安全性

public

class

person

public

string getgender()

public

void

work()

else

}}

以上 person 類封裝 name、gender、age 等屬性,外界只能通過 get() 方法獲取乙個 person 物件的 name 屬性和 gender 屬性,而無法獲取 age 屬性,但是 age 屬性可以供 work() 方法使用。

注意到 gender 屬性使用 int 資料型別進行儲存,封裝使得使用者注意不到這種實現細節。並且在需要修改 gender 屬性使用的資料型別時,也可以在不影響客戶端**的情況下進行。

繼承:是物件導向最顯著的乙個特性,繼承是從已有的類中派生出新的類稱為子類,子類繼承父類的資料屬性和行為,並能根據自己的需求擴充套件出新的行為,提高了**的復用性。

animal animal = new cat();

繼承應該遵循黎克特制替換原則,子類物件必須能夠替換掉所有父類物件。

多型:指允許不同的物件對同一訊息做出相應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式(傳送訊息就是函式呼叫)。封裝和繼承幾乎都是為多型而準備的,在執行期間判斷引用物件的實際型別,根據其實際的型別呼叫其相應的方法。

多型分為編譯時多型和執行時多型。編譯時多型主要指方法的過載,執行時多型指程式中定義的物件引用所指向的具體型別在執行期間才確定。

//

父類public

class

base }//

子類class

kid: base

}

public

static

void

main( string args )

抽象是從眾多的事物中抽取出共同的、本質性的特徵,而捨棄其非本質的特徵。

例如蘋果、香蕉、生梨、葡萄、桃子等,它們共同的特性就是水果。得出水果概念的過程,就是乙個抽象的過程。

要抽象,就必須進行比較,沒有比較就無法找到共同的部分。

共同特徵是指那些能把一類事物與他類事物區分開來的特徵,這些具有區分作用的特徵又稱本質特徵。

因此抽取事物的共同特徵就是抽取事物的本質特徵,捨棄不同特徵。

所以抽象的過程也是乙個裁剪的過程,不同的、非本質性的特徵全部裁剪掉了。

所謂的共同特徵,是相對的,是指從某乙個刻面看是共同的。

比如,對於汽車和大公尺,從買賣的角度看都是商品,都有**,這是他們的共同的特徵,而從其他方面來比較是,他們則是不同的。

所以在抽象時,同與不同,決定於從什麼角度上來抽象。抽象的角度取決於分析問題的目的。

在軟體開發過程中,識別穩定的需求、識別核心的需求、識別概念性的需求、設計系統的架構、定義系統中構件之間的介面關係等等都是抽象的過程,都是反應系統的本質特徵的過程。

抽象的,才是穩定的,才是永恆的。 抽象的反義詞是具體。人員往往會說:「你講的太抽象了,能不能講的具體一點?」

在開發語言中,有抽象類,有具體類,具體類可以繼承自抽象類,可以例項化。抽象類可以派生出眾多的不同的具體類。

所謂:「一生二,二生三,三生萬物」。系統的穩定體現在抽象類,系統的變化體現在具體類。抽象類的層次要高於具體類。

系統因抽象而穩定,因抽象而生動。

抽象用 abstract 關鍵字來修飾,用 abstract 修飾類時,此類就不能被例項化,從這裡可以看出,抽象類就是為了繼承而存在的,

如果定義了乙個抽象類而不去繼承它,那麼等於白白建立了這個抽象類,因為你不能用它來做任何事情,用 abstract 修飾方法時,此方法就是抽象方法,抽象方法必須存在於抽象類中,抽象方法沒有方法體,

對於乙個父類來說,如果它的某個方法在父類中實現出來沒有任何意義,必須根據子類的實際需求來進行不同的實現,那麼就可以將這個方法宣告為抽象方法,抽象方法的修飾符必須為 public 或者 protected ,因為用 private,則不能被子類繼承,子類便無法實現該方法,預設情況下預設為 public 。

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

封裝 隱藏內部實現細節,防止資料被隨意修改,提公升安全性 由於避免暴露了很多實現細節,只提供對於指定欄位的操作或只提供幾個方法,這樣後續修改維護比較容易。下面是乙個杜撰的示例 public class card 下面不提供id的修改,每張卡id只能是一定的,不能被修改了 對於學習者來說,降低其理解難...

抽象 封裝 繼承 多型

計算機是表示和處理資訊的機器。為了解決現實世界的問題,需要把現實世界的問題域對映到計算機系統裡。程式語言被用來輔助人們向計算機系統講述現實世界問題域的工具。問題域中具有大量資訊,我們需要用某種信條指導,對這些資訊進行梳理。在物件導向的程式設計正規化下,有四個處理資訊的教條 抽象,封裝,繼承,多型。1...

c 抽象 繼承 封裝 多型

物件導向的基本概念有物件 類 抽象 封裝 繼承 多型 介面等 有的人說物件導向有四大基本特徵,抽象,封裝,繼承,多型,但其實抽象可以丟擲在外,本質來說,物件導向的基本特徵是繼承,封裝,多型。先來說c 中的物件和類 類是物件的抽象,而物件是類的具體化,而要使用類的功能,具體就要先定義乙個物件 例如 c...