2018-03-31(接口、組織、繼承、多形性)

接口:

規(guī)定了可對一個特定的對象發(fā)出哪些請求。然而,必須在某個地方存在著一些代碼,以便滿足這些請求。這些代碼隱藏起來的數(shù)據(jù)叫做“隱藏的實現(xiàn)”。

有兩方面原因促使我們控制成員的訪問。第一個原因是防止程序員接觸他們不該接觸的東西--通常是內(nèi)部數(shù)據(jù)類型的設計思想。 ? ? ? ? ? ? ? ? ?第二個原因是允許庫設計成員修改內(nèi)部結(jié)構(gòu),不用擔心它會對客戶程序員造成什么影響。

java采用三個顯式關(guān)鍵字和一個隱式關(guān)鍵字來設置邊界:public,private,protected以及friendly。

public:任何人都能使用。private:除了自己、類型創(chuàng)建者、和那個類型的內(nèi)部函數(shù)成員、其他都不能訪問。試圖訪問會得到編譯期錯誤。friendly 涉及package,若某樣東西是“友好的”,意味著它只能在這個包裝的范圍內(nèi)使用。protected:受保護的,只是集成的類可以訪問受保護的成員,但不能訪問私有成員。

組織與繼承:

組織:在現(xiàn)有類的基礎上組織一個新的類,也叫包含關(guān)系,具有極大的靈活性,新類的“成員對象”通常設為“私有”,客戶程序員不能訪問他們,我們可以在不干擾客戶的代碼前提下,從容地修改那些成員。繼承并不具備這樣的靈活性。因為編譯器必須對通過繼承創(chuàng)建的類加以限制。 ? “繼承隨處可見”這種思路產(chǎn)生的設計將是非常笨拙的,會大大增加程序的復雜程度。相反,新建類的時候,首先應考慮“組織”對象;這樣做顯得更加簡單和靈活。利用對象的組織,我們的設計可保持清爽。

繼承:子類對象可以轉(zhuǎn)為基礎類對象。將其視為“純替換”。是一種“等價”關(guān)系,“圓就是一種幾何形狀”。 這種替換不完美,在基礎類里不能訪問衍生類的新函數(shù)。

Upcasting:把衍生類當做他的基本類處理的過程叫做“upcating”?!癱ast”是根據(jù)一個縣城的模型創(chuàng)建;“up”表明繼承的方向是從上面來的。

動態(tài)綁定:當一個函數(shù)的參數(shù)是父類的時候,可使用子類對象做參調(diào)用。而且會自動執(zhí)行正確的方法,比如子類重寫了方法,在調(diào)用時會執(zhí)行子類的方法。將一條消息發(fā)給對象時,如果并不知道對方具體類型是什么,但采用的行動同樣是正確的,這種情況叫“多形性”。編譯器和運行期系統(tǒng)會負責對所用細節(jié)的控制。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,637評論 18 399
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,242評論 0 62
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,423評論 0 2
  • 要實現(xiàn)在WebView上模擬點擊效果,效果一直不好,函數(shù)是搜索得到的,有幾點需要注意: 1、按下和松開之間的時間要...
    PengPengPro閱讀 1,923評論 0 0
  • 今晚的夜空里有好多的孔明燈。我看到他們的時候,他們橘紅色一團光暈,從小鎮(zhèn)的街道間升起來,在黑紫色的夜幕里,溫暖而寧...
    An_gus_Lee閱讀 571評論 0 0

友情鏈接更多精彩內(nèi)容