Java核心技術(shù)卷1第五章的感想和記錄

類钞馁、子類和超類

關(guān)鍵字extends表明構(gòu)造的新類派生于一個(gè)已經(jīng)存在的類虑省。已經(jīng)存在的類稱為超類,基類或者父類僧凰。新類稱為子類探颈、派生類i。
在通過(guò)超類擴(kuò)展子類的時(shí)候训措,僅僅需要指出子類與超類的不同之處伪节。在設(shè)計(jì)的時(shí)候光羞,應(yīng)將通用方法放在超類當(dāng)中,具有特殊用途的方法放在子類當(dāng)中架馋。然而狞山,超類當(dāng)中有些方法在子類并不適用全闷,為此需要提供一個(gè)新的方法覆蓋(override)它叉寂。

super關(guān)鍵字: 在子類當(dāng)中,不能夠直接訪問(wèn)超類的私有 域总珠,而是應(yīng)該通過(guò)超類的公共接口來(lái)進(jìn)行訪問(wèn)屏鳍。但是由于子類在繼承超類時(shí),也同時(shí)繼承了與這個(gè)公共接口同名的方法局服。所以钓瞭,想要在子類當(dāng)中調(diào)用超類的公共接口要使用super。
  在子類中淫奔,能夠增加域山涡,增加方法或者覆蓋方法。但是不能刪減域或者刪減方法唆迁。
  構(gòu)造方法:以為子類不能訪問(wèn)超類的私有域鸭丛,所以對(duì)那部分域的初始化要通過(guò)調(diào)用超類的構(gòu)造器。如果沒(méi)有顯示的調(diào)用超類的構(gòu)造器唐责,編譯器將自動(dòng)調(diào)用超類沒(méi)有參數(shù)的構(gòu)造器鳞溉,如果超類當(dāng)中沒(méi)有沒(méi)有參數(shù)的構(gòu)造器,編譯器將報(bào)錯(cuò)鼠哥。


多態(tài)

多態(tài):一個(gè)對(duì)象變量可以引用多種實(shí)際類型的現(xiàn)象熟菲。
is-a規(guī)則:又叫做置換規(guī)則。表明程序當(dāng)中出現(xiàn)的任何超類對(duì)象的地方都可以通過(guò)子類對(duì)象來(lái)進(jìn)行替換朴恳。也就是說(shuō)抄罕,可以將一個(gè)子類對(duì)象賦值給一個(gè)超類對(duì)象變量。
  阻止繼承:用final修飾的類不能被其他的子類繼承于颖。類中也可以用final修飾方法呆贿,經(jīng)過(guò)final修飾的方法不可以子類覆蓋。


強(qiáng)制類型轉(zhuǎn)換

類型轉(zhuǎn)換:將一個(gè)類型強(qiáng)制轉(zhuǎn)換成另一個(gè)類型的過(guò)程恍飘。
進(jìn)行類型轉(zhuǎn)換哦唯一原因:在暫時(shí)忽略對(duì)象的實(shí)際類型之后榨崩,使用對(duì)象的全部功能。
  編譯器規(guī)則:將一個(gè)子類的引用賦值給一個(gè)超類變量是允許的章母。但是將一個(gè)超類的引用賦值給一個(gè)子類的變量就必須進(jìn)行強(qiáng)制轉(zhuǎn)換母蛛,否則編譯器會(huì)報(bào)錯(cuò)。
  綜述:只能在繼承層次內(nèi)進(jìn)行對(duì)象的強(qiáng)制轉(zhuǎn)換乳怎;在將超類轉(zhuǎn)化為子類時(shí)需要使用instanceof進(jìn)行檢查彩郊。


所有類的超類Object

Object類是Java當(dāng)中所有類的祖先前弯,在Java中所有類都有由它拓展而來(lái)。
  equals方法:該方法用來(lái)檢測(cè)兩個(gè)對(duì)象是否相等秫逝,Object類當(dāng)中這個(gè)方法用來(lái)判斷兩個(gè)對(duì)象的引用是否相同恕出。
  toString方法:返回用于表示對(duì)象值的字符串。若一個(gè)對(duì)象當(dāng)中定義了toString方法违帆,只要一個(gè)字符串與一個(gè)對(duì)象通過(guò)“+”連在一起就會(huì)自動(dòng)調(diào)用toString方法浙巫。


泛型數(shù)組列表

作用:解決在編譯前就要確定數(shù)據(jù)大小的問(wèn)題。
語(yǔ)法:ArrayList<對(duì)象類型>名稱 = new ArrayList<對(duì)象類型>()刷后;
方法:使用add()方法可以往數(shù)組列表當(dāng)中添加對(duì)象的畴;ensureCapacity(數(shù)字)適用于事先就確定了容量的數(shù)組列表; size()方法返回?cái)?shù)組列表實(shí)際的元素?cái)?shù)目尝胆;
數(shù)組列表容量與數(shù)組大小的區(qū)別:數(shù)組大小表示數(shù)組可以裝載多少個(gè)元素丧裁,數(shù)組列表容量只是表示擁有保存一定數(shù)目元素的潛力。
  訪問(wèn)數(shù)組列表:使用set(i, value)和get(i)方法含衔,而不是傳統(tǒng)的 [ ] 符號(hào)煎娇。注意:add方法添加元素,set方法只能夠替換元素贪染。


對(duì)象包裝器和打包

有時(shí)候缓呛,需要將int這樣的基本類轉(zhuǎn)換成對(duì)象來(lái)使用。在Java中抑进,每一個(gè)基本類型都有一個(gè)與之相對(duì)應(yīng)的類强经。例如,Integer類對(duì)應(yīng)Int寺渗。這些類被稱為包裝器(wrapper)匿情。它們分別是:Integer、Long信殊、Double炬称、Float、Short涡拘、Byte玲躯、Chareter、Void鳄乏、Boolean跷车。對(duì)象包裝類是不可變的,同時(shí)也不能被繼承橱野。
  自動(dòng)打包與自動(dòng)拆包:當(dāng)基本類型被賦到應(yīng)該使用對(duì)象的地方朽缴,Java會(huì)自動(dòng)的將類型轉(zhuǎn)換,這種過(guò)程叫做自動(dòng)打包水援。當(dāng)對(duì)象被賦值到需要使用基本類型的地方密强,Java自動(dòng)將類型轉(zhuǎn)換茅郎,這個(gè)過(guò)程叫做自動(dòng)拆包。


繼承設(shè)計(jì)技巧

將公共操作和域放在超類或渤;
不要使用受保護(hù)的域系冗;
使用繼承實(shí)現(xiàn)is-a關(guān)系;
除非繼承的所有方法都有意義薪鹦,否則不要使用繼承掌敬;
在覆蓋方法時(shí),不要改變預(yù)期的行為距芬;
使用多態(tài)涝开,而非類型信息;
不要過(guò)多地使用反射框仔;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拄养,隨后出現(xiàn)的幾起案子离斩,更是在濱河造成了極大的恐慌,老刑警劉巖瘪匿,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跛梗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡棋弥,警方通過(guò)查閱死者的電腦和手機(jī)核偿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)顽染,“玉大人漾岳,你說(shuō)我怎么就攤上這事》勰” “怎么了尼荆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)唧垦。 經(jīng)常有香客問(wèn)我捅儒,道長(zhǎng),這世上最難降的妖魔是什么振亮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任巧还,我火速辦了婚禮,結(jié)果婚禮上坊秸,老公的妹妹穿的比我還像新娘麸祷。我一直安慰自己,他們只是感情好妇斤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布摇锋。 她就那樣靜靜地躺著丹拯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荸恕。 梳的紋絲不亂的頭發(fā)上乖酬,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音融求,去河邊找鬼咬像。 笑死,一個(gè)胖子當(dāng)著我的面吹牛生宛,可吹牛的內(nèi)容都是我干的县昂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼陷舅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼倒彰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起莱睁,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤待讳,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后仰剿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體创淡,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年南吮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琳彩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡部凑,死狀恐怖露乏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情砚尽,我是刑警寧澤施无,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站必孤,受9級(jí)特大地震影響猾骡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜敷搪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一兴想、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赡勘,春花似錦嫂便、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岸售。三九已至,卻和暖如春厂画,著一層夾襖步出監(jiān)牢的瞬間凸丸,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工袱院, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屎慢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓忽洛,卻偏偏與公主長(zhǎng)得像腻惠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子欲虚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法集灌,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法苍在,繼承相關(guān)的語(yǔ)法绝页,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,631評(píng)論 18 399
  • 在生活和工作中有很多碎片時(shí)間可以用來(lái)看書(shū)寂恬,但通常書(shū)籍一般都五六百頁(yè),常常忘記自己看到哪里莱没,遂開(kāi)文章記錄.選...
    勤息嘻嘻嘻閱讀 5,575評(píng)論 0 12
  • 第一章:Java程序設(shè)計(jì)概述 Java和C++最大的不同在于Java采用的指針模型可以消除重寫(xiě)內(nèi)存和損壞數(shù)據(jù)的可能...
    loneyzhou閱讀 1,251評(píng)論 1 7
  • key point Java 和其他語(yǔ)言的比較 什么是Java引用 面向?qū)ο蟮幕咎卣?封裝 繼承 多態(tài)靜態(tài)綁定 ...
    andrew7閱讀 413評(píng)論 0 1
  • 1.我今天學(xué)了什么 1.公共樣式的提取 2.Css2D轉(zhuǎn)換 .33transition過(guò)渡 2我掌握了什么 1.公...
    鄂xj閱讀 266評(píng)論 0 0