首頁技術(shù)文章正文

如何理解面向?qū)ο蟮姆庋b、繼承和多態(tài)?

更新時間:2020-09-09 來源:黑馬程序員 瀏覽量:

面向?qū)ο笫且环N符合人類思維習(xí)慣的編程思想。現(xiàn)實生活中存在各種形態(tài)不同的事物,這些事物之間存在著各種各樣的聯(lián)系。在程序中使用對象來映射現(xiàn)實中的事物,使用對象的關(guān)系來描述事物之間的聯(lián)系,這種思想就是面向?qū)ο蟆?br/>

對于學(xué)習(xí)過其他編程語言的人員來說,可能會想到面向過程。面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一一實現(xiàn),使用的時候依次調(diào)用就可以了。面向?qū)ο髣t是把構(gòu)成問題的事務(wù)按照一定規(guī)則劃分為多個獨(dú)立的對象,然后通過調(diào)用對象的方法來解決問題。當(dāng)然,一個應(yīng)用程序會包含多個對象,通過多個對象的相互配合即可實現(xiàn)應(yīng)用程序所需的功能,這樣當(dāng)應(yīng)用程序功能發(fā)生變動時,只需要修改個別的對象就可以了,這使得代碼更容易得到維護(hù)。

1599639523329_面向?qū)ο缶幊?jpg



面向?qū)ο蟮奶攸c(diǎn)主要可以概括為封裝、繼承和多態(tài),接下來針對這三種特性進(jìn)行簡單介紹。

1.封裝

封裝是面向?qū)ο蟮暮诵乃枷耄瑢ο蟮膶傩院托袨榉庋b起來,不需要讓外界知道具體實現(xiàn)細(xì)節(jié),這就是封裝思想。例如,用戶使用電腦,只需要使用手指敲鍵盤就可以了,無需知道電腦內(nèi)部是如何工作的,即使用戶可能碰巧知道電腦的工作原理,但在使用時,并不完全依賴電腦工作原理這些細(xì)節(jié)。

2.繼承

繼承主要描述的就是類與類之間的關(guān)系,通過繼承,可以在無需重新編寫原有類的情況下,對原有類的功能進(jìn)行擴(kuò)展。例如,有一個汽車的類,該類中描述了汽車的普通屬性和功能,而轎車的類中不僅應(yīng)該包含汽車的屬性和功能,還應(yīng)該增加轎車特有的屬性和功能,這時,可以讓轎車類繼承汽車類,在轎車類中單獨(dú)添加轎車特有的屬性和功能就可以了。繼承不僅增強(qiáng)了代碼的復(fù)用性、提高開發(fā)效率,還為程序的維護(hù)補(bǔ)充提供了便利。

3.多態(tài)

多態(tài)指的是在一個類中定義的屬性和功能被其他類繼承后,當(dāng)把子類對象直接賦值給父類引用變量時,相同引用類型的變量調(diào)用同一個方法所呈現(xiàn)出的多種不同行為特性。例如,當(dāng)聽到“Cut” 這個單詞時,理發(fā)師的行為表現(xiàn)是剪發(fā),演員的行為表現(xiàn)是停止表演等。不同的對象,所表現(xiàn)的行為是不一樣的。

面向?qū)ο蟮乃枷胫粦{上面的介紹是無法讓初學(xué)者真正理解的,初學(xué)者只有通過大量的實踐練習(xí)和思考,才能真正領(lǐng)悟面向?qū)ο笏枷搿?br/>

猜你喜歡:

Java基礎(chǔ)之面向?qū)ο?/a>

java基礎(chǔ)之面向?qū)ο?繼承、接口、多態(tài)

java面向?qū)ο笏枷朐趺蠢斫?

C/C++面向?qū)ο蠛蚸ava面向?qū)ο蟮膮^(qū)別

分享到:
在線咨詢 我要報名
和我們在線交談!