封裝 封裝機制將資料和程式碼捆綁到一起,避免了外界的干擾和不確定性。它同樣允許建立物件。簡單的說,一個物件就是一個封裝了資料和操作這些資料的程式碼的邏輯實體。 在一個物件內部,某些程式碼和(或)某些資料可以是私有的,不能被外界訪問。透過這種方式,物件對內部資料提供了不同級別的保護,以防止程式中無關的部分意外的改變或錯誤的使用了物件的私有部分。 繼承 繼承是可以讓某個型別的物件獲得另一個型別的物件的屬性的方法。它支援按級分類的概念。例如,知更鳥屬於飛鳥類,也屬於鳥類。就像圖5中描繪的那樣,這種分類的原則是,每一個子類都具有父類的公共特性。 在OOP中,繼承的概念很好的支援了程式碼的重用性(reusability),也就是說,我們可以向一個已經存在的類中新增新的特性,而不必改變這個類。這可以透過從這個已存在的類派生一個新類來實現。這個新的類將具有原來那個類的特性,以及新的特性。而繼承機制的魅力和強大就在於它允許程式設計師利用已經存在的類(接近需要,而不是完全符合需要的類),並且可以以某種方式修改這個類,而不會影響其它的東西。 注意,每個子類只定義那些這個類所特有的特性。而如果沒有按級分類,每類都必須顯式的定義它所有的特性。 多型 多型是OOP的另一個重要概念。多型的意思是事物具有不同形式的能力。舉個例子,對於不同的例項,某個操作可能會有不同的行為。這個行為依賴於所要操作資料的型別。比如說加法操作,如果操作的資料是數,它對兩個數求和。如果操作的資料是字串,則它將連線兩個字串。 圖6演示了一個函式處理不同數量、不同型別的引數。就像某個單詞在不同的上下文中具有不同的含義。 多型機制使具有不同內部結構的物件可以共享相同的外部介面。這意味著,雖然針對不同物件的具體操作不同,但透過一個公共的類,它們(那些操作)可以透過相同的方式予以呼叫。多型在實現繼承的過程中被廣泛應用。 面向物件程式設計語言支援多型,術語稱之為“one interface multiple method(一個介面,多個實現)”。簡單來說,多型機制允許透過相同的介面引發一組相關但不相同的動作,透過這種方式,可以減少程式碼的複雜度。在某個特定的情況下應該作出怎樣的動作,這由編譯器決定,而不需要程式設計師手工干預。
封裝 封裝機制將資料和程式碼捆綁到一起,避免了外界的干擾和不確定性。它同樣允許建立物件。簡單的說,一個物件就是一個封裝了資料和操作這些資料的程式碼的邏輯實體。 在一個物件內部,某些程式碼和(或)某些資料可以是私有的,不能被外界訪問。透過這種方式,物件對內部資料提供了不同級別的保護,以防止程式中無關的部分意外的改變或錯誤的使用了物件的私有部分。 繼承 繼承是可以讓某個型別的物件獲得另一個型別的物件的屬性的方法。它支援按級分類的概念。例如,知更鳥屬於飛鳥類,也屬於鳥類。就像圖5中描繪的那樣,這種分類的原則是,每一個子類都具有父類的公共特性。 在OOP中,繼承的概念很好的支援了程式碼的重用性(reusability),也就是說,我們可以向一個已經存在的類中新增新的特性,而不必改變這個類。這可以透過從這個已存在的類派生一個新類來實現。這個新的類將具有原來那個類的特性,以及新的特性。而繼承機制的魅力和強大就在於它允許程式設計師利用已經存在的類(接近需要,而不是完全符合需要的類),並且可以以某種方式修改這個類,而不會影響其它的東西。 注意,每個子類只定義那些這個類所特有的特性。而如果沒有按級分類,每類都必須顯式的定義它所有的特性。 多型 多型是OOP的另一個重要概念。多型的意思是事物具有不同形式的能力。舉個例子,對於不同的例項,某個操作可能會有不同的行為。這個行為依賴於所要操作資料的型別。比如說加法操作,如果操作的資料是數,它對兩個數求和。如果操作的資料是字串,則它將連線兩個字串。 圖6演示了一個函式處理不同數量、不同型別的引數。就像某個單詞在不同的上下文中具有不同的含義。 多型機制使具有不同內部結構的物件可以共享相同的外部介面。這意味著,雖然針對不同物件的具體操作不同,但透過一個公共的類,它們(那些操作)可以透過相同的方式予以呼叫。多型在實現繼承的過程中被廣泛應用。 面向物件程式設計語言支援多型,術語稱之為“one interface multiple method(一個介面,多個實現)”。簡單來說,多型機制允許透過相同的介面引發一組相關但不相同的動作,透過這種方式,可以減少程式碼的複雜度。在某個特定的情況下應該作出怎樣的動作,這由編譯器決定,而不需要程式設計師手工干預。