JavaSE基礎(chǔ)

面向?qū)ο蠖加心男┨匦砸约澳銓@些特性的理解

一.繼承:繼承是從已有類得到繼承信息創(chuàng)建新類的過程。提供繼承信息的類被稱為父類(超類、基類);得到繼承信息的類被稱為子類(派生類)。繼承讓變化中的軟件系統(tǒng)有了一定的延續(xù)性,同時繼承也是封裝程序中可變因素的重要手段。

二.封裝:通常認(rèn)為封裝是把數(shù)據(jù)和操作數(shù)據(jù)的方法綁定起來,對數(shù)據(jù)的訪問只能通過已定義的接口。面向?qū)ο蟮谋举|(zhì)就是將現(xiàn)實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現(xiàn)細(xì)節(jié)的一種封裝;我們編寫一個類就是對數(shù)據(jù)和數(shù)據(jù)操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只對外界提供最簡單的編程接口。

三.多態(tài)性:多態(tài)性是指允許不同子類型的對象對同一消息作出不同的響應(yīng)。簡單地說就是用同樣的對象引用調(diào)用同樣的方法但是做了不同的事情。多態(tài)性分為編譯時的多態(tài)性和運(yùn)行時的多態(tài)性。如果將對象的方法視為對象向外界提供的服務(wù),那么運(yùn)行時的多態(tài)性可以解釋為:當(dāng)A系統(tǒng)訪問B系統(tǒng)提供的服務(wù)時,B系統(tǒng)有多種提供服務(wù)的方式,但一切對A系統(tǒng)來說都是透明的。方法重載(overload)實現(xiàn)的是編譯時的多態(tài)性(也稱為前綁定),而方法重寫(override)實現(xiàn)的是運(yùn)行時的多態(tài)性(也成為后綁定)。運(yùn)行時的多態(tài)是面向?qū)ο笞罹璧臇|西,要實現(xiàn)多態(tài)需要做兩件事:1.方法重寫(子類集成父類并重寫父類中已有的或抽象的方法);2.對象造型(用父類型引用引用子類型對象,這樣同樣的引用調(diào)用同樣的方法就會根據(jù)子類對象的不同而表現(xiàn)出不同的行為)。

Java中實現(xiàn)多態(tài)的機(jī)制:父類或接口定義的引用變量可以指向子類或具體實現(xiàn)類的實例對象,而程序調(diào)用的方法在運(yùn)行期才動態(tài)綁定,就是引用變量所指向的具體實例對象的方法,也就是內(nèi)存里正在運(yùn)行的那個對象的方法,而不是引用變量的類型中定義的方法。

四.抽象:抽象是將一類對象的共同特征總結(jié)出來構(gòu)造類的過程,包括數(shù)據(jù)抽象和行為抽象兩方面。抽象只關(guān)注對象有哪些屬性和行為,并不關(guān)注這些行為的細(xì)節(jié)是什么。


Java的數(shù)據(jù)類型

1.Java的基本數(shù)據(jù)類型都有哪些?各占幾個字節(jié)?

byte? ? ? ? 1

char? ? ? ? 2

short? ? ? 2

int? ? ? ? ? 4

float? ? ? ? 4

long? ? ? ? 8

double? ? 8

boolean? 1(boolean類型比較特別,可能只占一個bit,多個boolean可能共同占有一個字節(jié))

2.String是基本數(shù)據(jù)類型嗎?可以被繼承嗎?

String是引用類型,底層用char數(shù)據(jù)實現(xiàn)的。因為String是final類,在java中被final修飾的類不能被繼承,因此String當(dāng)然不可以被繼承。

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

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

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