天天看點

面向對象程式設計三大特性------封裝、繼承、多态

封裝:盡可能地隐藏内部的細節,隻保留一些對外接口使之與外部發生聯系。

封裝的好處:

(1):隐藏實作細節。好比你買了台電視機,你隻需要怎麼使用,并不用了解其實作原理。

(2):安全性。比如你在程式中私有化了age屬性,并提供了對外的get和set方法,當外界 使用set方法為屬性設值的時候 你可以在set方法裡面做個if判斷,把值設值在0-80歲,那樣他就不能随意指派了。

(3):增加代碼的複用性。好比在工具類中封裝的各種方法,你可以在任意地方重複調用,提高複用。

(4):子產品化。有利于程式的協助分工,互不幹擾,友善了子產品之間的互相組合與分解,也有利于代碼的調試和維護。比如人體由各個器官所組成,如果有個器官出現問題,你隻要去對這個器官檢查。

繼承:繼承是使用已存在的類的定義作為基礎建立新類的技術。

繼承的好處:

(1):容易在父類基礎上構造,建立和擴充出新的類。

(2):能清晰展現相關類之間的層次結構關系,簡化了人們對事物的認識和描述。

(3):複用父類的代碼,能減少資料和代碼的備援度。

(4):大大增加了代碼的維護性,改動父類,則所有子類的會自動改動,不用每個子類單獨去改。

多态:同一操作作用于不同的對象,可以有不同的解釋,産生不同的執行結果,這就是多态性。

對于面向對象而言,多态分為編譯時多态和運作時多态。其中編輯時多态是靜态的,主要是指方法的重載,它是根據參數清單的不同來區分不同的函數,通過編輯之後會變成兩個不同的函數,在運作時談不上多态。而運作時多态是動态的,它是通過動态綁定來實作的,也就是我們所說的多态性。

多态的好處:

(1): 應用程式不必為每一個派生類編寫功能調用,隻需要對抽象基類進行處理即可。大大提高程式的可複用性(減少重複代碼,使代碼變得簡潔)。//繼承

(2):派生類的功能可以被基類的方法或引用變量所調用,這叫向後相容,可以提高可擴充性和可維護性。 //多态的真正作用。

比如人這個類裡有喂動物這個行為,一種動物寫一個喂的方法,如果我有一萬種動物,就要寫一萬個方法,突然又來了一種新的動物,又要單獨為它寫一個喂方法。如果使用多态,把喂特定某種動物變成喂動物,那麼我們隻需要寫一個方法,我們就減少重複代碼,使代碼變得簡潔。如果又有一種新的動物加進來,隻需要實作它自己的類,不用為人這個類填方法,提高了擴充性。