當源類(被稱為基類,超類或父類)發生變動時,被修改的「副本」(被稱為匯出類,繼承類或子類)也會反映出這些變動。
乙個基型別包含其所有匯出型別所共享的特性和行為。可以
建立乙個基型別來表示系統中某些物件的核心概念,從基型別中匯出其他型別,來表示
此核心可以被實現的各種不同方式。
當繼承現有型別時,這個新的型別不僅包括現有的型別的所有成員(儘管private成員被隱藏了起來,並且不可訪問),而且更重要的是它
複製了基類的介面。
有兩種方法可以使基類和匯出類產生差異:
第一種:
直接在匯出類中新增新的方法,這些方法並不是基類的一部分。(意味基類不能直接滿足你的所有需求,因此必需新增更多的方法)
第二種:
覆蓋(overriding),要想覆蓋某個方法,可以
直接在匯出類中建立該方法的新定義即可。
「是乙個」與「像是乙個」關係:
是乙個:用乙個匯出類物件來完全代替乙個基類物件,這被稱為
純粹替代,通常被稱之為
「替代原則」。描述為is-a(是乙個)關係。
像是乙個:有時必須在匯出型別中新增新的介面元素,這樣也就擴充套件了介面。這個新的型別仍然可以替代基類,但這種替代並不完美,因為
基類無法訪問新新增的方法,這種情況我們可以稱為is-like-a(像是乙個)關係。
第一章 物件導論
所有程式語言都提供抽象機制。人們所能夠解決的問題的複雜性直接取決於抽象的型別和質量 物件導向程式設計允許根據問題來描述問題,而不是根據執行解決方案的計算機來描述問題。物件導向程式設計的五個基本特性,這些特性表現了一種純粹的物件導向程式設計方式 總結 這 一小節首先介紹了類的思想 物件導向程式設計語言...
第一章 物件導論
public表示其後的元素對任何人都是可用的 private出了型別的建立者和內部方法之外任何人都不能訪問的元素 protect於private相當,差別在於繼承的類可以訪問protected型別,但是不能訪問逇private。預設許可權 比較容易忽視 包訪問許可權,因為在這種許可權下,類可以訪問在...
第一章物件導論
1.1抽象過程 所有程式語言都提供抽象機制。物件導向程式設計方式 1.萬物皆物件。可以將物件視作乙個特殊的變數,如 類class a 建立類和建立變數是一樣的,a a 建立物件a int i 建立變數i 同時,也可以用類來描述物品或其它抽象的東西,例如 class 長方體 double 長 doub...