在java中菩彬,除了八種基本數(shù)據(jù)類型,一切皆對(duì)象潮梯。
java是基于C++設(shè)計(jì)的語言骗灶,而C++又是繼承自C語言,C語言是一種面向過程的語言秉馏,在軟件比較簡單的年代耙旦,只需要敲一些函數(shù)、定義基本數(shù)據(jù)就能滿足需求萝究,但是當(dāng)軟件規(guī)模越來越大免都,功能復(fù)雜度超過hello world的時(shí)候,人們發(fā)現(xiàn)代碼量越來越龐大帆竹,難以維護(hù)和理解绕娘,因此提出了面向?qū)ο蟮乃枷搿T谖业睦斫庵性粤嫦驅(qū)ο缶褪且袁F(xiàn)實(shí)生活中處理問題的方式來編寫程序险领,對(duì)象即實(shí)體,它擁有屬性和行為秒紧,且相互之間可以有關(guān)聯(lián)绢陌,也可以互不影響。它更注重實(shí)現(xiàn)而非內(nèi)部的具體過程熔恢。
封裝脐湾、繼承、多態(tài)叙淌、抽象
在JAVA中沥割,面向?qū)ο蟮乃枷塍w現(xiàn)在封裝耗啦、繼承和多態(tài)三個(gè)方面
封裝:我們將對(duì)象的屬性和行為寫在一個(gè)類中,讓其成為一個(gè)獨(dú)立的整體机杜,并盡可能地對(duì)外隱藏對(duì)象的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)帜讲,這個(gè)操作成為封裝。封裝是面向?qū)ο蟮幕A(chǔ)
繼承:從已有的類派生出新的子類椒拗,子類根據(jù)權(quán)限擁有父類的數(shù)據(jù)似将、屬性和行為,并能根據(jù)自己的需求擴(kuò)展新的行為蚀苛,這個(gè)過程稱為繼承
多態(tài):指允許不同的對(duì)象對(duì)同一消息做出響應(yīng)在验,同一消息可以根據(jù)發(fā)送對(duì)象的不同而采用多種不同的方式。封裝和繼承幾乎都是為了多態(tài)而準(zhǔn)備的堵未。
抽象:在java中腋舌,抽象用abstract關(guān)鍵字修飾,用abstract修飾類時(shí)渗蟹,此類則不能被實(shí)例化块饺,一個(gè)抽象類內(nèi)部有抽象方法,也可以有具體方法雌芽,抽象方法用abstract關(guān)鍵字修飾授艰,它沒有任何實(shí)現(xiàn)方法,必須在子類中去實(shí)現(xiàn)世落,因此抽象類其實(shí)就是為了繼承而存在的淮腾。抽象方法必須是public或protected的,因?yàn)閜rivate無法被繼承屉佳,從而將導(dǎo)致該方法無法被具體實(shí)現(xiàn)谷朝,也就失去了抽象方法的意義。默認(rèn)情況下抽象方法的權(quán)限為public