1.物件是一個獨立自主的實體,用一組可識別的特性和行為來標示。
2.類別就是具有相同之屬性和功能的物件的抽象集合。
3.實體,就是一個真實的物件。實體化就是建立物件的過程,使用new關鍵字來建立。
4.建構式,又叫建構函式,其實就是對類別進行初始化。建構式與類別同名,無返回值,也不需要void,在new時調用。
5.所有類別都有建構式,如果你沒有做任何定義,系統會自動產生空的建構式,若你有定義建構式,那麼預定的建構式就會失效了。
6.方法重載提供了建立同名的多個方法的能力,但這些方法需要使用不同的參數類型。
7.方法重載時,方法名相同,但參數類型或個數必須要有所不同。
8.方法重載可在不改變原方法的基礎上,新增功能。
9.屬性是一個方法或一對方法,但在調用它的程式碼看來,它是一個欄位,既屬性適合於以欄位的方式使用方法調用的場合。
10.欄位是儲存類別要滿足其設計所需要的資料,欄位是與類別相關的變數。
11.public表示它所修飾的類別成員可以允許其他任何類別來存取。
12.private表示只允許同一個類別中的成員存取,其他類別包括它的子類別無法存取。
13.通常欄位都是private,即私有的變數,而屬性都是public,即公有的變數。
14.屬性有兩個方法get和set。
15.get存取器返回與宣告的屬性相同的資料類型,表示的意思是調用時可以得到內部欄位的值或參考。
16.set存取器沒有顯示設定參數,但它有一個隱式參數,用關鍵字value表示,它的作用是調用屬性時可以給內部的欄位或參考賦值。
17.每個物件都包含它進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其他物件來完成自己的操作。
18.封裝有很多好處,第一、良好的封裝能夠減少耦合。第二、類別內部的實現可以自由地修改。第三、類別具有清晰的對外介面。
19.物件的繼承代表了一種"is-a"的關係,如果兩個物件A和B,可以描述為『B是A』,則表明B可以繼承A。
20.繼承者還可以理解為是對被繼承者的特殊化,因為它除了具備被繼承者的特性外,還具備自己獨有的個性。
21.繼承定義了類別如何相互關聯,共用特性。
22.繼承的工作方式是定義父類別和子類別,或叫做基礎類別和衍生類別,其中子類別繼承父類別的所有特性。
23.子類別不但繼承了父類別的所有特性,還可以定義新的特性。
24.如果子類別繼承於父類別,第一、子類別擁有父類別非private的屬性和功能。第二、子類別具有自己的屬性和功能,即子類別可以擴展父類別沒有的屬性和功能。第三、子類別還可以用自己的方式實現父類別的功能(方法重寫)。
25.protected表示繼承時,子類別可以對基礎類別有完全存取權。
26.子類別從它的父類別中繼承的成員有方法、欄位、屬性、事件、索引指示器,但對於建構式,它不能被繼承,只能被調用。對於調用父類別的成員,可以用super關鍵字。
27.不用繼承的話,如果要修改功能,就必須在所有重複的方法中修改,程式碼越多,出錯的可能性就越大,而繼承的優點是,繼承使得所有子類別公共的部份都放在父類別,使得程式碼得到的共用,這就避免了重複,另外,繼承可使得修改或擴展繼承而來的實現都較容易。
28.繼承是有缺點的,那就是父類別變動,子類別也不得不變。
29.繼承會破壞包裝,父類別實現細節暴露給子類別。
30.繼承顯然是一種類別與類別之堅強耦合的關係。
31.當兩個類別之間具備"is-a"的關係時,就可以考慮用繼承了。
32.多型表示不同的物件可以執行相同的動作,但要透過它門自己的實現程式碼來執行。
33.第一、子類別以父類別的身分出現。第二、子類別載工作時已自己的方式來實現。第三、子類別以父類別的身分出現時,子類別特有的屬性和方法不可以使用。
34.為了使子類別的實體完全接替來自父類別的類別成員,父類別必須將該成員宣告為虛擬的。這是透過在該成員的返回類型之前加上abstract關鍵字還實現。
35.子類別可以選擇使用override關鍵字,將父類別實現替換為它自己的實現,這就是方法重寫override,或者叫做方法覆寫。
36.不同的物件可以執行相同的動作,但要透過他們自己實現程式碼來執行。
37.多型的原理是當方法被調用時,無論物件是否被轉換為其父類別,都只有位於物件繼承練最末端的方法實現會被調用。也就是說,虛擬方法是按照其執行時類別,而非編譯時類型進行動態繫結調用的。
38.把類別的方法和方法宣告為abstract,即抽象類別和抽象方法。
39.第一、抽象類別不能實體化。第二、抽象方法是必須被子類別重寫的方法。第三、如果類別中包含抽象方法,那麼類別就必須定義為抽象類別,不論是否還包含其他一般方法。
40.抽象類別擁有盡可能多的共同程式碼,擁有盡可能少的資料。
41.抽象類別通常代表一個抽象的概念,它提供一個繼承的出發點,當設計一個新的抽象類別時,一定是用來繼承的,所以,在一個以繼承關係形成的等級結構裡面,樹葉節點應當是具體類別,而樹枝節點均應當是抽象類別。
42.介面是把隱式公共方法和屬性組合起來,以封裝特定功能的一個集合。
43.一旦類別實現了介面,類別就可以支援介面所指定的所有屬性和成員。
44.宣告介面在語法上與宣告抽象類別完全相同,但不允許提供介面中任何成員的執行方式。
45.一個類別可以支援多個介面。
46.注意介面用interface宣告,而不是class,介面中的方法沒有方法體。
47.抽象類別可以給出一些成員的實現,介面卻不包含成員的實現,抽象類別的抽象成員可被子類別部分實現,介面的成員需要實現類別完全實現,一個類別只能繼承一個抽象類別,但可實現多個介面。
48.第一、類別是對物件的抽象,抽象類別是對類別的抽象,介面是對行為的抽象。第二、如果行為跨越不同類別的物件,可使用介面,對於一些相似的類別物件,用繼承抽象類別。第三、從設計的角度講,抽象類別是從子類別中發現了公共的東西,泛化出父類別,然後子類別繼承父類別,而介面是根本不知子類別的存在,方法如何實現還不確認,預先定義。
49.實現介面和繼承抽象類別並不衝突。
50.透過重構改善既有程式碼的設計。
留言列表