????????系統是由匯總了數據和過程的“對象”組成的。在面向對象中,軟件被定義為“類”,然后創建“實例”并運行。系統是通過“實例”之間的互相交換“消息”而運行的,但由于進行了“封裝”,所以無法查看內部的詳細內容,這被稱為“信息隱藏”。當發送“消息”時,并不會在意對方“實例”是哪一個“類”,這被稱為“多態”。
1.類
類是面向對象的最基本的結構,與其對應的概念是實例。
類的英文是class,含義是“種類”,“類型”等“同類物品的集合”。
實例的英文是instance,含義是“具體的物”。類指類型,實例指具體的物,二者的關系就相當于數學集論中的集合和元素一樣。
2.多態
多態,英文含義為:“變為各種形式”,通常翻譯為“多態”、“多相”等。
如果用一句話來表示該結構,就是“讓向相似的類發送消息的方法通用的結構”,也可以說是“發送消息時不關心對方具體是哪一個類的實例的結構”。
多態是一種方便消息發送者的手法。
3.繼承
用一句話來表示繼承,就是“系統的整理物的種類共同點和不同點的結構”。
在面向對象中,“物的種類”就是類。因此, 換一種給表達方式,,也可以說及繼承是“整理相似事物的類的共同點和不同點的結構”。
類和實例相當于集合和元素,而繼承則相當于全集和子集。
在面向對象中,全集被稱為超類,子集被稱為子類。
此繼承關系還可以應用于現實中的各種情況,比如將醫生分為內科醫生、外科醫生、眼科醫生和牙科醫生,將公司職員分為營業人員、技術人員和辦公人員等
應用于編程中則是:
Java等面向對象編程語言中可以直接描述繼承。具體來說,在超類中定義全集共同的性質,在子類中定義子集特有的性質,這樣我們就可以不用重復定義非常相似的、只存在略微不同的類的共同點和不同點了。