1. 面向對象都有哪些特性以及你對這些特性的理解
1)繼承:繼承是從已有類得到繼承信息創建新類的過程。提供繼承信息的類被稱為父類(超類、基類);得到繼
承信息的類被稱為子類(派生類)。繼承讓變化中的軟件系統有了一定的延續性,同時繼承也是封裝程序中可變因素的
重要手段。 (程序的可復用性 ,增強了類與類的耦合 )
2) 封裝:通常認為封裝是把數據和操作數據的方法綁定起來,對數據的訪問只能通過已定義的接口。面向對象
的本質就是將現實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現細節的一種封裝;我
們編寫一個類就是對數據和數據操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程
接口。 (把數據和對數據的操作放在一起---->封裝)
3) 多態性:多態性是指允許不同子類型的對象對同一消息作出不同的響應。簡單的說就是用同樣的對象引用調
用同樣的方法但是做了不同的事情。多態性分為編譯時的多態性和運行時的多態性。如果將對象的方法視為對象向外
界提供的服務,那么運行時的多態性可以解釋為:當A系統訪問B系統提供的服務時,B系統有多種提供服務的方式,
但一切對 A 系統來說都是透明的。方法重載(overload)實現的是編譯時的多態性(也稱為前綁定),而方法重寫
(override)實現的是運行時的多態性(也稱為后綁定)。運行時的多態是面向對象最精髓的東西,要實現多態需要做
兩件事:
1. 方法重寫(子類繼承父類並重寫父類中已有的或抽象的方法);
2. 對象造型(用父類型引用引用子類型對
象,這樣同樣的引用調用同樣的方法就會根據子類對象的不同而表現出不同的行為)。
(一個父類的引用類形它既可以指向父類對象也可以指向子類對象,他根據當前時刻的指向不同,自動調用不同對象的方法,這就是多態)
4)抽象:抽象是將一類對象的共同特征總結出來構造類的過程,包括數據抽象和行為抽象兩方面。抽象只關注對
象有哪些屬性和行為,並不關注這些行為的細節是什么。
類 :對一類事物抽象所得的一個概念
兩種抽象
與具體相對 表示一種概念而非實體
與細節相對 表示一定程度上忽略細節而着眼大局