java基礎(chǔ)教程面向?qū)ο笙耞第1頁(yè)
java基礎(chǔ)教程面向?qū)ο笙耞第2頁(yè)
java基礎(chǔ)教程面向?qū)ο笙耞第3頁(yè)
java基礎(chǔ)教程面向?qū)ο笙耞第4頁(yè)
java基礎(chǔ)教程面向?qū)ο笙耞第5頁(yè)
資源描述:

《java基礎(chǔ)教程面向?qū)ο笙隆酚蓵?huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、Java基礎(chǔ)教程主講老師:□□□第四講面向?qū)ο螅ㄏ拢╊惖睦^承通過(guò)繼承可以簡(jiǎn)化類的定義。Java只支持單繼承,不允許多重繼承??梢杂卸鄬永^承,即一個(gè)類可以繼承某一個(gè)類的子類,如類B繼承了類A,類C又可以繼承類B,那么類C也間接繼承了類A。子類繼承父類所有的成員變量和成員方法,但不繼承父類的構(gòu)造方法。在子類的構(gòu)造方法中可使用語(yǔ)句super(參數(shù)列表)調(diào)用父類的構(gòu)造方法。如果子類的構(gòu)造方法中沒(méi)有顯式地調(diào)用父類構(gòu)造方法,也沒(méi)有使用this關(guān)鍵字調(diào)用重載的其它構(gòu)造方法,則在產(chǎn)生子類的實(shí)例對(duì)象時(shí),系統(tǒng)默認(rèn)調(diào)用父類無(wú)參數(shù)的構(gòu)造方法。總之都會(huì)調(diào)用父類的構(gòu)造函數(shù)一個(gè)類沒(méi)有聲明構(gòu)造函數(shù)的時(shí)候,編譯

2、器會(huì)自動(dòng)添加一個(gè)不帶參數(shù)的構(gòu)造函數(shù);一旦聲明了任意一個(gè)構(gòu)造函數(shù)則就不添加了。子類對(duì)象的實(shí)例化過(guò)程分配成員變量的存儲(chǔ)空間并進(jìn)行默認(rèn)的初始化,就是用new關(guān)鍵字產(chǎn)生對(duì)象后,對(duì)類中的成員變量按第三章的表3.1中的對(duì)應(yīng)關(guān)系對(duì)對(duì)象中的成員變量進(jìn)行初始化賦值。綁定構(gòu)造方法參數(shù),就是newPerson(實(shí)際參數(shù)列表)中所傳遞進(jìn)的參數(shù)賦值給構(gòu)造方法中的形式參數(shù)變量。如有this()調(diào)用,則調(diào)用相應(yīng)的重載構(gòu)造方法(被調(diào)用的重載構(gòu)造方法又從步驟2開(kāi)始執(zhí)行這些流程),被調(diào)用的重載構(gòu)造方法的執(zhí)行流程結(jié)束后,回到當(dāng)前構(gòu)造方法,當(dāng)前構(gòu)造方法直接跳轉(zhuǎn)到步驟6執(zhí)行顯式或隱式追溯調(diào)用父類的構(gòu)造方法(一直到Obj

3、ect類為止,Object是所有Java類的最頂層父類,在本章后面部分有詳細(xì)講解),父類的構(gòu)造方法又從步驟2開(kāi)始對(duì)父類執(zhí)行這些流程,父類的構(gòu)造方法的執(zhí)行流程結(jié)束后,回到當(dāng)前構(gòu)造方法,當(dāng)前構(gòu)造方法繼續(xù)往下執(zhí)行。進(jìn)行實(shí)例變量的顯式初始化操作,也就是執(zhí)行在定義成員變量時(shí)就對(duì)其進(jìn)行賦值的語(yǔ)句,如:執(zhí)行當(dāng)前構(gòu)造方法的方法體中的程序代碼子類對(duì)象的實(shí)例化過(guò)程思考:1).為什么super(…)和this(…)調(diào)用語(yǔ)句不能同時(shí)在一個(gè)構(gòu)造函數(shù)中出現(xiàn)?2).為什么super(…)或this(…)調(diào)用語(yǔ)句只能作為構(gòu)造函數(shù)中的第一句出現(xiàn)?覆蓋父類的方法覆蓋方法必須和被覆蓋方法具有相同的方法名稱、參數(shù)列表

4、和返回值類型。如果在子類中想調(diào)用父類中的那個(gè)被覆蓋的方法,我們可以用super.方法的格式。覆蓋方法時(shí),不能使用比父類中被覆蓋的方法更嚴(yán)格的訪問(wèn)權(quán)限。final關(guān)鍵字在Java中聲明類、屬性和方法時(shí),可使用關(guān)鍵字final來(lái)修飾。final標(biāo)記的類不能被繼承。final標(biāo)記的方法不能被子類重寫(xiě)。final標(biāo)記的變量(成員變量或局部變量)即成為常量,只能賦值一次。方法中定義的內(nèi)置類只能訪問(wèn)該方法內(nèi)的final類型的局部變量,用final定義的局部變量相當(dāng)于是一個(gè)常量,它的生命周期超出方法運(yùn)行的生命周期,將一個(gè)形參定義成final也是可以的,這就限定了我們?cè)诜椒ㄖ行薷男问絽?shù)的值。

5、publicstaticfinal共同標(biāo)記常量時(shí),這個(gè)常量就成了全局的常量。抽象類java中可以定義一些不含方法體的方法,它的方法體的實(shí)現(xiàn)交給該類的子類根據(jù)自己的情況去實(shí)現(xiàn),這樣的方法就是抽象方法,包含抽象方法的類就叫抽象類。抽象類必須用abstract關(guān)鍵字來(lái)修飾;抽象方法也必須用abstract來(lái)修飾。抽象類不能被實(shí)例化,也就是不能用new關(guān)鍵字去產(chǎn)生對(duì)象。抽象方法只需聲明,而不需實(shí)現(xiàn)。含有抽象方法的類必須被聲明為抽象類,抽象類的子類必須覆蓋所有的抽象方法后才能被實(shí)例化,否則這個(gè)子類還是個(gè)抽象類。接口(interface)如果一個(gè)抽象類中的所有方法都是抽象的,我們就可以將這

6、個(gè)類用另外一種方式來(lái)定義,也就是接口定義。接口是抽象方法和常量值的定義的集合,從本質(zhì)上講,接口是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒(méi)有變量和方法的實(shí)現(xiàn)。接口中的成員都是public訪問(wèn)類型的。接口里的變量默認(rèn)是用publicstaticfinal標(biāo)識(shí)的。我們可以定義一個(gè)新的接口用extends關(guān)鍵字去繼承一個(gè)已有的接口我們也可以定義一個(gè)類用implements關(guān)鍵字去實(shí)現(xiàn)一個(gè)接口中的所有方法,我們還可以去定義一個(gè)抽象類用implements關(guān)鍵字去實(shí)現(xiàn)一個(gè)接口中定義的部分方法。一個(gè)類可以繼承一個(gè)父類的同時(shí),實(shí)現(xiàn)一個(gè)或多個(gè)接口,extends關(guān)鍵字必須位于i

7、mplemnets關(guān)鍵字之前。對(duì)象的類型轉(zhuǎn)換子類對(duì)象可以自動(dòng)轉(zhuǎn)換成父類父類轉(zhuǎn)換成子類必須使用強(qiáng)制轉(zhuǎn)換。instanceof操作符可以用它來(lái)判斷一個(gè)實(shí)例對(duì)象是否屬于一個(gè)類。Object類及equals方法面向?qū)ο蟮亩鄳B(tài)性1).應(yīng)用程序不必為每一個(gè)派生類(子類)編寫(xiě)功能調(diào)用,只需要對(duì)抽象基類進(jìn)行處理即可。這一招叫“以不變應(yīng)萬(wàn)變”,可以大大提高程序的可復(fù)用性。2).派生類的功能可以被基類的引用變量引用,這叫向后兼容,可以提高程序的可擴(kuò)充性和可維護(hù)性。以前寫(xiě)的程序可以被后來(lái)程序調(diào)用不足為奇,現(xiàn)在寫(xiě)的

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。