2011年軟考系統(tǒng)分析師整理資料:面向對象(7)
九、面向對象和基于對象的區(qū)別
很多人沒有區(qū)分“面向對象”和“基于對象”兩個不同的概念。面向對象的三大特點(封裝,繼承,多態(tài))缺一不可。通常“基于對象”是使用對象,但是無法利用現(xiàn)有的對象模板產生新的對象類型,繼而產生新的對象,也就是說“基于對象”沒有繼承的特點。而“多態(tài)”表示為父類類型的子類對象實例,沒有了繼承的概念也就無從談論“多態(tài)”。現(xiàn)在的很多流行技術都是基于對象的,它們使用一些封裝好的對象,調用對象的方法,設置對象的屬性。但是它們無法讓程序員派生新對象類型。他們只能使用現(xiàn)有對象的方法和屬性。所以當你判斷一個新的技術是否是面向對象的時候,通常可以使用后兩個特性來加以判斷。“面向對象”和“基于對象”都實現(xiàn)了“封裝”的概念,但是面向對象實現(xiàn)了“繼承和多態(tài)”,而“基于對象”沒有實現(xiàn)這些,的確很饒口。
從事面向對象編程的人按照分工來說,可以分為“類庫的創(chuàng)建者”和“類庫的使用者”。使用類庫的人并不都是具備了面向對象思想的人,通常知道如何繼承和派生新對象就可以使用類庫了,然而我們的思維并沒有真正的轉過來,使用類庫只是在形式上是面向對象,而實質上只是庫函數(shù)的一種擴展。
面向對象是一種思想,是我們考慮事情的方法,通常表現(xiàn)為我們是將問題的解決按照過程方式來解決呢,還是將問題抽象為一個對象來解決它。很多情況下,我們會不知不覺的按照過程方式來解決它,而不是考慮將要解決問題抽象為對象去解決它。有些人打著面向對象的幌子,干著過程編程的勾當.
【編輯推薦】