面試官:請談一談你對OOP的理解?

文編|JavaBuild

哈嘍,大家好呀!我是JavaBuild,以后可以喊我鳥哥!俺滴座右銘是不在沉默中爆發(fā),就在沉默中滅亡,一起加油學(xué)習(xí),珍惜現(xiàn)在來之不易的學(xué)習(xí)時光吧,等工作之后,你就會發(fā)現(xiàn),想學(xué)習(xí)真的需要擠時間,厚積薄發(fā)啦!

標(biāo)題中的問題可以說是很多公司一面的必問題,作為一種劃時代的編程思想,OOP(Object-Oriented-Programming)-面向?qū)ο缶幊痰膫ゴ鬅o需贅言,而Java作為面向?qū)ο缶幊痰恼n代表,更是將這種編程思想推向巔峰。
那么在我們拿到這個問題的時候該如何回答呢?

首先,我們需要搞明白的是,除了面向?qū)ο笾膺€有面向什么?

什么是對象?

在討論面向?qū)ο笾埃B哥想問一句:“你知道什么是對象嗎?在Java的世界中,對象應(yīng)該具備什么特點?”

1、對象具有屬性和行為
2、對象具有變化的狀態(tài)
3、對象具有唯一性
4、對象都是某個類別的實例
5、一切皆為對象,真實世界中的所有事物都可以視為對象

面向?qū)ο笈c面向過程的區(qū)別

目前,編程世界的兩大主流思想是面向過程與面向?qū)ο螅?br> 面向過程: 將問題拆分為多個步驟,分步驟順序解決,環(huán)環(huán)相扣,互相耦合,互相穿插。典型代表:C語言

OIP-C.jpg

面向?qū)ο螅?/strong> 將問題抽象化,定義對象的屬性,方法等,用對象驅(qū)動方法的方式解決問題,強(qiáng)調(diào)高內(nèi)聚低耦合,靈活度高,對于復(fù)雜代碼的后期維護(hù)有先天優(yōu)勢,典型代表:Java語言。

Java.png

面向?qū)ο蟮奶匦?/h2>

通常情況下,我們在很多Java書籍中提到面向?qū)ο蟮奶匦?,都會說三大特性,實則為四大特性,分別為繼承、封裝、多態(tài)、抽象

四大特性.png

1)繼承

所謂的繼承是父子之間的屬性與方法的向下傳遞,比如鳥類是父類,而鸚鵡與麻雀是鳥類的子類,它們都繼承了父類的(會飛,有羽毛),同時呢,各自有具有各自的特有屬性,麻雀叫喳喳,鸚鵡學(xué)人語。

在Java中只支持單繼承,麻雀繼承了鳥類這個父類后就無法再繼承其他的父類了,否則會屬性錯亂,無法識別同一個屬性繼承自哪個父類。

2)封裝

封裝是將代碼及其處理的數(shù)據(jù)綁定在一起的一種編程機(jī)制,該機(jī)制保證了程序和數(shù)據(jù)都不受外部干擾且不被誤用。封裝的目的在于保護(hù)信息。
良好的利用封裝可以為我們帶來如下好處:

1,敏感信息安全化,對于很多技術(shù)性公司,非??粗卮a的私有性
2,低耦合,后期維護(hù)方便
3,對復(fù)雜的實現(xiàn)進(jìn)行封裝后,會讓調(diào)用者享受前所未有的快樂!

3)多態(tài)

多態(tài)性主要體現(xiàn)在父類的屬性和方法被子類繼承后或接口被實現(xiàn)類實現(xiàn)后,可以具有不同的屬性或表現(xiàn)方式,主要通過方法的重寫(override)實現(xiàn)。
實現(xiàn)多態(tài)的條件

實現(xiàn)多態(tài)有三個條件:

1、繼承
2、子類重寫父類的方法
3、父類引用變量指向子類對象

實現(xiàn)多態(tài)的技術(shù)稱為:動態(tài)綁定(dynamic binding),是指在執(zhí)行期間判斷所引用對象的實際類型,根據(jù)其實際的類型調(diào)用其相應(yīng)的方法。 

Java 中使用父類的引用變量調(diào)用子類重寫的方法,即可實現(xiàn)多態(tài)。

4)抽象

抽象是將一類對象的共同特征總結(jié)出來構(gòu)造類的過程,包括數(shù)據(jù)抽象和行為抽象兩方面。
Java之父詹姆斯.高林斯設(shè)置的Object類就是萬物抽象之源,是所有類的父類,是Java世界的最高抽象,解決了三個問題:我是誰,我從哪里來,要到哪里去!
下一篇文章,我們將基于Object展開,敬請期待呀!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容